Managing address space in register bank of system basis chip

WO2025015492A1PCT designated stage expired Publication Date: 2025-01-23MICROCHIP TECHNOLOGY INC +1
View PDF 7 Cites 0 Cited by

Patent Information

Application Number
PCT/CN2023/107648
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Filing Date
2023-07-17
Publication Date
2025-01-23

AI Technical Summary

Technical Problem

System basis chips (SBCs) face challenges in managing address space in their register banks, particularly in split-PHY architectures where different dies undergo different processing conditions, leading to complexities in accessing and managing extended register spaces.

Method used

The implementation of an address space manager and access controller within the SBC, which dynamically manages the accessibility of buses to the register bank by adding or removing addresses, and uses key-based validation to secure and control the extension of the accessible address space.

Benefits of technology

This solution provides flexible and efficient management of the register bank's address space, ensuring secure and controlled access, and allowing for the coexistence of different bus systems like MDIO and I2C, thereby enhancing the operational reliability and adaptability of SBCs.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN2023107648_23012025_PF_FP_ABST
    Figure CN2023107648_23012025_PF_FP_ABST
Patent Text Reader

Abstract

Examples include managing address space in a register bank of a system basis chip. An apparatus includes a bus slave and a system basis chip including. The system basis chip includes a register bank, an access controller to confine reach of the bus slave to a select set of addresses of the register bank, and an address space manager to set the select set of addresses of the register bank.
Need to check novelty before this filing date? Find Prior Art

Description

MANAGING ADDRESS SPACE IN A REGISTER BANK OF A SYSTEM BASIS CHIPFIELD

[0001] This application relates, generally, to system basis chip and more specifically, managing address space in a register bank of a system basis chip.BACKGROUND

[0002] Integrated circuits (ICs) are utilized in a variety of operational context and may be subject to a variety of stresses.BRIEF DESCRIPTION OF THE DRAWINGS

[0003] To easily identify the discussion of any particular element or act, the most significant digit or digits in a reference number refer to the figure number in which that element is first introduced.

[0004] FIG. 1 illustrates an aspect of the subject matter in accordance with one or more examples.

[0005] FIG. 2 illustrates an aspect of the subject matter in accordance with one or more examples.

[0006] FIG. 3 illustrates an aspect of the subject matter in accordance with one or more examples.

[0007] FIG. 4 illustrates an aspect of the subject matter in accordance with one or more examples.

[0008] FIG. 5A illustrates an aspect of the subject matter in accordance with one or more examples.

[0009] FIG. 5B illustrates an aspect of the subject matter in accordance with one or more examples.

[0010] FIG. 6 illustrates an aspect of the subject matter in accordance with one or more examples.

[0011] FIG. 7 illustrates an aspect of the subject matter in accordance with one or more examples.

[0012] FIG. 8 illustrates an aspect of the subject matter in accordance with one or more examples.

[0013] FIG. 9 illustrates an aspect of the subject matter in accordance with one or more examples.

[0014] FIG. 10 is a block diagram of circuitry that, in one or more examples, may be used to implement various functions, operations, acts, processes, or methods disclosed herein.DETAILED DESCRIPTION

[0015] In the following detailed description, reference is made to the accompanying drawings, which form a part hereof, and in which are shown, by way of illustration, specific examples of examples in which the present disclosure may be practiced. These examples are described in sufficient detail to enable a person of ordinary skill in the art to practice the present disclosure. However, other examples may be utilized, and structural, material, and process changes may be made without departing from the scope of the disclosure.

[0016] The illustrations presented herein are not meant to be actual views of any particular method, system, device, or structure, but are merely idealized representations that are employed to describe the examples of the present disclosure. The drawings presented herein are not necessarily drawn to scale. Similar structures or components in the various drawings may retain the same or similar numbering for the convenience of the reader; however, the similarity in numbering does not mean that the structures or components are necessarily identical in size, composition, configuration, or any other property.

[0017] The following description may include examples to help enable one of ordinary skill in the art to practice the disclosed examples. The use of the terms “exemplary, ” “by example, ” and “for example, ” means that the related description is explanatory, and though the scope of the disclosure is intended to encompass the examples and legal equivalents, the use of such terms is not intended to limit the scope of an example or this disclosure to the specified components, steps, features, functions, or the like.

[0018] It will be readily understood that the components of the examples as generally described herein and illustrated in the drawing could be arranged and designed in a wide variety of different configurations. Thus, the following description of various examples is not intended to limit the scope of the present disclosure, but is merely representative of various examples. While the various aspects of the examples may be presented in drawings, the drawings are not necessarily drawn to scale unless specifically indicated.

[0019] Furthermore, specific implementations shown and described are only examples and should not be construed as the only way to implement the present disclosure unless specified otherwise herein. Elements, circuits, and functions may be shown in block diagram form in order not to obscure the present disclosure in unnecessary detail. Conversely, specific implementations shown and described are exemplary only and should not be construed as the only way to implement the present disclosure unless specified otherwise herein. Additionally, block definitions and partitioning of logic between various blocks is exemplary of a specific implementation. It will be readily apparent to one of ordinary skill in the art that the present disclosure may be practiced by numerous other partitioning solutions. For the most part, details concerning timing considerations and the like have been omitted where such details are not necessary to obtain a complete understanding of the present disclosure and are within the abilities of persons of ordinary skill in the relevant art.

[0020] Those of ordinary skill in the art would understand that information and signals may be represented using any of a variety of different technologies and techniques. Some drawings may illustrate signals as a single signal for clarity of presentation and description. It will be understood by a person of ordinary skill in the art that the signal may represent a bus of signals, wherein the bus may have a variety of bit widths and the present disclosure may be implemented on any number of data signals including a single data signal.

[0021] The various illustrative logical blocks, modules, and circuits described in connection with the examples disclosed herein may be implemented or performed with a general purpose processor, a special purpose processor, a Digital Signal Processor (DSP) , an Integrated Circuit (IC) , an Application Specific Integrated Circuit (ASIC) , a Field Programmable Gate Array (FPGA) or other programmable logic device, discrete gate or transistor logic, discrete hardware components, or any combination thereof designed to perform the functions described herein. A general-purpose processor (may also be referred to herein as a host processor or simply a host) may be a microprocessor, but in the alternative, the processor may be any conventional processor, controller, microcontroller, or state machine. A processor may also be implemented as a combination of computing devices, such as a combination of a DSP and a microprocessor, a plurality of microprocessors, one or more microprocessors in conjunction with a DSP core, or any other such configuration. A general-purpose computer including a processor is considered a special-purpose computer while the general-purpose computer executes computing instructions (e.g., software code) related to examples of the present disclosure.

[0022] The examples may be described in terms of a process that is depicted as a flowchart, a flow diagram, a structure diagram, or a block diagram. Although a flowchart may describe operational acts as a sequential process, many of these acts can be performed in another sequence, in parallel, or substantially concurrently. In addition, the order of the acts may be re-arranged. A process may correspond to a method, a thread, a function, a procedure, a subroutine, a subprogram, without limitation. Furthermore, the methods disclosed herein may be implemented in hardware, software, or both. If implemented in software, the functions may be stored or transmitted as one or more instructions or code on computer-readable media. Computer-readable media includes both computer storage media and communication media including any medium that facilitates transfer of a computer program from one place to another.

[0023] Any reference to an element herein using a designation such as “first, ” “second, ” and so forth does not limit the quantity or order of those elements, unless such limitation is explicitly stated. Rather, these designations may be used herein as a convenient method of distinguishing between two or more elements or instances of an element. Thus, a reference to first and second elements does not mean that only two elements may be employed there or that the first element must precede the second element in some manner. In addition, unless stated otherwise, a set of elements may comprise one or more elements.

[0024] As used herein, the term “substantially” in reference to a given parameter, property, or condition means and includes to a degree that one of ordinary skill in the art would understand that the given parameter, property, or condition is met with a small degree of variance, such as, for example, within acceptable manufacturing tolerances. By way of example, depending on the particular parameter, property, or condition that is substantially met, the parameter, property, or condition may be at least 90%met, at least 95%met, or even at least 99%met.

[0025] As used herein, any relational term, such as “over, ” “under, ” “on, ” “underlying, ” “upper, ” “lower, ” without limitation, is used for clarity and convenience in understanding the disclosure and accompanying drawings and does not connote or depend on any specific preference, orientation, or order, except where the context clearly indicates otherwise.

[0026] In this description the term “coupled” and derivatives thereof may be used to indicate that two elements co-operate or interact with each other. When an element is described as being “coupled” to another element, then the elements may be in direct physical or electrical contact or there may be intervening elements or layers present. In contrast, when an element is  described as being “directly coupled” to another element, then there are no intervening elements or layers present. The term “connected” may be used in this description interchangeably with the term “coupled, ” and has the same meaning unless expressly indicated otherwise or the context would indicate otherwise to a person having ordinary skill in the art.

[0027] As used herein, the terms “assert, ” “de-assert” and derivatives thereof used in reference to a pin, means, respectively, to assert or de-assert a signal associated with the pin (e.g., a signal specifically assigned to the pin or a signal to which the pin is specifically assigned, without limitation) .

[0028] A system basis chip (SBC) is an integrated circuit (IC) that combines multiple functions for operation of an electronic system. An SBC typically integrates various, different functions into a single chip, including, as non-limiting examples: power management functions such as voltage regulators, power switches, or protection circuitry, without limitation, to manage the power supply for the system; communication interfaces such as CAN (Controller Area Network) , LIN (Local Interconnect Network) , SPI (Serial Peripheral Interface) , or I2C (Inter-Integrated Circuit) , without limitation; embedded systems such as state machines or microprocessors, without limitation, that control and coordinate tasks; analog functions such as analog-to-digital converters (ADCs) , digital-to-analog converters (DACs) , temperature sensors, and other signal conditioning circuitry; and diagnostic and safety functions, such as monitoring and reporting voltage levels, temperature, or fault conditions, without limitation.

[0029] SBCs are found in a variety of operational context, including automotive and industrial applications. A non-limiting example of an automotive application for SBC is in 10SPE (i.e., 10 Mbps Single Pair Ethernet) networks (also called “10BASE-T1S networks” ) . 10SPE is a network technology specified in IEEE 802.3 clause 147 and 148.10SPE may be used to provide a collision free, deterministic transmission on a multi-drop network.

[0030] In some cases, a transceiver and controller of a 10SPE physical layer device (PHY) may be located on different die, as a non-limiting example, so the die undergo different processing conditions. This is referred to herein as a “split-PHY” architecture. The digital blocks of a PHY controller, which are susceptible to damage during high voltage temperature processes may be located on a first die that does not undergo high voltage temperature processes. Analog and digital blocks of a PHY transceiver, which are not susceptible to damage during high voltage temperature processes or require such processes may be located on a second die that does undergo such high voltage temperature processes.

[0031] The 10SPE Transceiver Interface standard currently under specification development by Technology Committee 14 of the OPEN Alliance (hereinafter the “TC14 Standard” ) defines a 3-pin hardware interface for communication between a PHY transceiver and PHY controller.

[0032] The 10SPE controller functions are implemented at a microcontroller (MCU) and the 10SPE transceiver functions are implemented at an SBC. In addition to 10SPE transceiver functions, the SBC can implement non-transceiver functions, i.e., functions of the electronic system, such as power management, watchdog circuit, monitors, general purpose input / output (GPIO) , without limitation.

[0033] In 10SPE, the SBC′s responsibilities include communication transceiver, low-voltage power, observability / control of high voltage domain and functional safety mechanisms for

[0034] MCU to reach safe state.

[0035] In one or more examples:

[0036] ● Extending PHY-transceiver (xcvr) register space

[0037] ○ OA (Open Alliance) specifies split-PHY (PMA + PMD-xcvr)

[0038] ○ OA=open Alliance, PHY=physical layer, PMA=physical media attachment sub-layer, PMD=physical medium dependent sub-layer

[0039] ○ OA specs MDIO access to 32 registers in xcvr of which only 15 are for vendor-specific use

[0040] ○ Use 2 of those registers as control / address and data for extended space

[0041] ● Transceiver Space coexists with SBC registers

[0042] ○ SBC=system basis chip

[0043] ■ Has a bank of registers

[0044] ○ Other systems functions (e.g., power delivery, watchdog) co-exist in space that is accessed by I2C

[0045] ■ Bank of registers divided into two groups / sections: a first group accessed by MDIO driver; another group accessed by I2C driver. MDIO driver is concerned about xcvr function, and I2C driver is concerned with non-xcvr functions (separation is a design choice) . Each have their own group of dedicated registers.

[0046] ○ Co-exist=register space only accessible by respective driver

[0047] ■ Firmware have a list of resources, including register addresses, the firmware can use. Accessing wrong resources would trigger a violation and  hardware would prevent it from completing. Firmware is customizable so could violate.

[0048] ○ Locked against cross access: SBC / xcvr registers not accessible via MDIO / i2C

[0049] ■ Hardware lockouts

[0050] ● ·SBC / xcvr space accessible via MDIO / i2c for debug

[0051] ○ Access keys unlock cross access, e.g., turn off hardware lockout.

[0052] FIG. 1 is block diagram of an apparatus 100. Apparatus 100 includes system basis chip (SBC) 102 and bus slave (s) 112. System basis chip (SBC) 102 includes address space manager 104, access controller 106 and register bank 110. Access controller 106 includes access ctrl logic 108.

[0053] Bus slave (s) 112 is a device that operates as a peripheral or subordinate to a bus master in a computer or electronic communication system. In a bus-based architecture, the electronic communication system, data and control signals may be transferred between bus slave (s) 112 and bus slave (s) 112 (via bitstreams) and bus masters using a bus. One or more bus slaves of bus slave (s) 112 may be an MDIO (Management Data Input / Output) bus slave. Non-limiting examples of MDIO bus slaves include physical layer (PHY) transceivers, Ethernet switches (e.g., Gigabit Ethernet switches, without limitation) , Network Interface Cards (NICs) , Ethernet Media Converters, and Ethernet routers and gateways.

[0054] One or more bus slaves of bus slave (s) 112 may be an I2C (Inter-Integrated Circuit) bus slave. Non-limiting examples of I2C bus slaves include sensors, memory chips, or peripheral devices. One or more bus slaves of bus slave (s) 112 may be a PCI (Peripheral Component interconnect) bus system. Non-limiting examples of PCI bus slaves include a network card, sound card, or peripheral device. Bus slave (s) 112 monitor the bus for commands or requests addressed to it, processing the received data or instructions, and providing requested information or performing requested actions.

[0055] Address space manager 104 dynamically manages the accessibility of one or more busses to register bank 110. Address space manager 104 operates by adding or removing addresses from a select set of addresses of the register bank 110. The select set of addresses corresponds to a select portion of the register bank′s address space that a bus can interact with. In one or more examples, address space manager 104 manages accessibility of one or more busses to register bank 110 in response to an address space extension request (addr space extension request) .

[0056] In this way, address space manager 104 effectively controls the range of registers of register bank 110 that a bus (or bus slave) has permission to read from or write to, providing flexibility and ensuring efficient utilization of the register bank′s resources.

[0057] Access controller 106 confines the reach of a bus to the select addresses of register bank 110, which correspond to a select portion of the address space of register bank 110. In one or more examples, access controller 106 confine reach of the bus slave to a select set of addresses of the register bank, and the select set of addresses corresponds to a select portion of the

[0058] Access controller 106 enforces an interaction boundary within register bank 110 for the a given bus. It does this by blocking any attempts to interact with addresses that fall outside of the select set of addresses of the register bank′s address space. This ensures that a given bus can only read from or write to the allocated range of addresses, as a non-limiting example, safeguarding the integrity of the other addresses within the register bank.

[0059] Access ctrl logic 108 functions as a security mechanism for the expansion of the select set of addresses of the register bank 110 address space. Access ctrl logic 108 only permits the address space manager 104 to add or remove addresses to or from the select set of addresses if a correct set of keys is provided. This key-based validation process ensures the secure and controlled extension of the accessible address space, preventing unauthorized or inadvertent modifications.

[0060] Native addresses are read natively, meaning, directly into, and out of, the native register, we put the address on the address line, its decoded at the register bank, and we read the data line. Optionally could do it this way for native read / write as well. An advantage would be that the firmware driver could be more uniform in its operations.

[0061] FIG. 2 is a block diagram of a system 200. System 200 includes a system basis chip 202 and Microcontroller 214. The system basis chip 202 includes MDIO slave with address space management 204, access ctrl logic 206, I2C slave 208, access controller 210, and register bank 212. Microcontroller 214 includes MDIO master 216 and I2C master 218.

[0062] MDIO slave with address space management 204 is an MDIO bus slave and an address space manager (e.g., address space manager 104 of FIG. 1) . Access ctrl logic 206 is a non-limiting example of access ctrl logic 108 of FIG. 1. Access controller 210 is a non-limiting example of an access controller 106 of FIG. 1. Register bank 212 is a non-limiting example of register bank 110 of FIG. 1.

[0063] In one or more examples MDIO slave with address space management 204 is for a PHY transceiver. System basis chip 202 incorporating both register bank 212 and a physical layer transceiver (xcvr logic or finite-state-machine not depicted) , exhibits a flexible address space allocation mechanism. Initially, a distinct portion of the address space of register bank 212 is dedicated exclusively to the MDIO bus / PHY transceiver and a distinct portion of the address space of register bank 212 is dedicated exclusively to I2C slave 208. However, system basis chip 202 offers dynamic address space management. This allows some or all of the I2C slave 208 allocated address space (some or all of the “extended register addresses” or “ext reg addr” ) which may include some or all of the SBC′s address space for non-PHY transceiver specific functions, to be made accessible to the MDIO slave, augmenting the range of addresses the MDIO can interact with. The allocation process is controlled by an address space manager, here, integrated with the MDIO slave, but it may be separate logic block. The allocation process is regulated by access control access ctrl logic 206, thereby maintaining secure and controlled access to the resources of register bank 212.

[0064] This structure provides a high degree of flexibility and efficiency in managing the register bank′s address space, making it adaptable to the changing requirements of the system basis chip′s operation or the MDIO slave′s operation.

[0065] Register bank 212 includes some specific-use registers: a command register and a lock control register, bits of which are used to control access to. and allocation of, portions of the address space of register bank 212. This setup allows for flexible, controlled, and secure access to and manipulation of the registers within the bank, especially for extended or indirect access cases.

[0066] FIG. 3 is a schematic diagram depicting example MDIO and I2C bitstreams received at MDIO slave with address space management 204 and I2C slave 208, respectively, and the formats of such bitstreams including fields.

[0067] These are both bit streams, both MDI and I2C have one data line, like they have one data line and one clock line (clock line not shown) , since one data line, data is received as a bitstream.

[0068] For MDIO bitstream, as an example, bit #1 s preamble, bit #2 is preamble, bit #8 is preamble, bit 9 is the start sequence, bit 11 and 12 is the operation. Then bit the next 4 bits are the physical address, and then the next 5 bits are the register address, and so on.

[0069] For the I2C bitstream, the one below, it′s similar, on the data line there is a start bit, then a 7 bit address, I2C slave address.

[0070] FIG. 4 is a schematic diagram depicting examples of specific use registers.

[0071] Control register 408: This register includes three key-related fields: the first key bit, the second key bit, and an enable bit. The first key bit indicates whether the first key (key1) has been received. It resets (or is cleared) on any write to a specific register named SFTR, except when writing to key2. The second key bit signifies the receipt of the second key (key2) . It allows write access to the SFTR register when both key1 and key2 are ′1′ . This bit also resets on any write to another specific register, SFIRm. The enable bit functions as a control signal for Firmware (FW) access to all Control Status Register (CSR) bits in an indirect domain. When set to ′1′ , it enables FW access, and when set to ′0′ , it disables FW access. Before enabling or disabling this bit, specific key values need to be written to the SFTR register: SFTR key1 (16′h4149) followed by SFTR key2 (16′h4155) , as non-limiting examples. SFTR and SFTRm are not shown.

[0072] Extension control register 402: This register comprises several fields, including an extended address field, a read ctrl, and a write ctrl. The extended register address field is used to hold an address that is part of the select portion of the register bank′s address space. The read ctrl serves as a control signal. When this bit is set to ′1′ , the data stored in the extended register 406, referenced by the extended register address store at extension control register 402, can be read from the data staging register 404. The write ctrl functions similarly. When it′s set to ′1′ , the data held in the data staging register 404 will be written to the extended register 406 associated with the current extended address.

[0073] Data staging register 404 may be a memory mapped register. In or more examples, system basis chip 202 or a peripheral device (not shown) maps specific addresses in register bank 212 (the extended address space of register bank 212) to various registers, allowing direct access to these registers through standard memory read and write operations. As a non-limiting example, an address decoding mechanism is provided that maps unique addresses to specific registers of register bank 212.

[0074] “Reserved” fields are depicted to illustrate that not all fields in the specific use registers need be used solely for address space allocation and access control discussed herein, though they may be used.

[0075] FIG. 5A is a schematic diagram depicting a register bank 502 or portion thereof. register bank 502 includes allocated MDIO native address space 512 and extendable addresses 514. MDIO native address space 512 includes MDIO register addresses 504, lock ctrl register address 506, extension ctrl register address 508 and data staging register address 510.

[0076] FIG. 5A is a schematic diagram depicting a register bank 502 or portion thereof. register bank 502 includes allocated MDIO native address space 512 and extendable addresses 514. MDIO native address space 512 includes MDIO register addresses 504, lock ctrl register address 506, extension ctrl register address 508 and data staging register address 510.

[0077] Notably extendable addresses 514 includes extended data register address (es) 516, which is now, after an address allocation process, logically part of MDIO native address space 512, because it is accessible via data staging register address 510.

[0078] FIG. 6 is a state diagram representing behavior of a finite-state-machine (FSM) of an access control logic. In this specific example, unlock logic goes through two verification states lock 1 and lock 2. It transitions from lock 1 to lock 2 when key 1 is written, and from lock 2 to unlock when key 2 is written. If keys are not written or not written in a predetermined number of clock cycles, the state diagram transitions from lock 2 to lock 1. It can perform this behavior every time a read or write is initiated or once and then stay in an unlock state until reset.

[0079] FIG. 7 is a flow diagram depicting a process to extend an address space of a bus slave. In one or more examples, the process chooses N non-native register addresses at operation 702 where N is an integer greater than or equal to 1. In one or more examples, the process includes adding the N non-native register addresses to the extended domain table at operation 704. In one or more examples, the process includes the N non-native register addresses added to the extended domain table are now ″extended register address (es) , operation 706.

[0080] FIG. 8 is a flow diagram depicting a process 800 for regulating access to an address space via an access control device such as an access controller 106 or access controller 210.

[0081] Although the example 800 depicts a particular sequence of operations, the sequence may be altered without departing from the scope of the present disclosure. For example, some of the operations depicted may be performed in parallel or in a different sequence that does not materially affect the function of the 800. In other examples, different components of an example device or system that implements the 800 may perform functions at substantially the same time or in a specific sequence.

[0082] According to one or more examples, the method includes receiving address at operation 802.

[0083] According to one or more examples, the method includes being the address in the extended address domain or address domain at operation 804.

[0084] According to one or more examples, the method includes if no, block access at operation 806.

[0085] According to one or more examples, the method includes if yes, allow access at operation 808.

[0086] FIG. 9 is a block diagram depicting a system which is a specific non-limiting example of system 200.

[0087] It will be appreciated by those of ordinary skill in the art that functional elements of examples disclosed herein (e.g., functions, operations, acts, processes, or methods) may be implemented in any suitable hardware, software, firmware, or combinations thereof. FIG. 10 illustrates non-limiting examples of implementations of functional elements disclosed herein. In one or more examples, some or all portions of the functional elements disclosed herein may be performed by hardware capable of carrying out the functional elements.

[0088] FIG. 10 is a block diagram of a circuitry 1000 that, in one or more examples, may be used to implement various functions, operations, acts, processes, or methods disclosed herein. The circuitry 1000 includes one or more processors 1002 (sometimes referred to herein as “processors 1002” ) operably coupled to one or more data storage devices 1004 (sometimes referred to herein as “storage 1004” ) . The storage 1004 includes machine executable code 1006 stored thereon and the processors 1002 include logic circuit 1008. The machine executable code 1006 information describing functional elements that may be implemented by (e.g., performed by) the logic circuit 1008. The logic circuit 1008 is adapted to implement (e.g., perform) the functional elements described by the machine executable code 1006. The circuitry 1000, when executing the functional elements described by the machine executable code 1006, should be considered as special purpose hardware for carrying out functional elements disclosed herein. In one or more examples the processors 1002 may perform the functional elements described by the machine executable code 1006 sequentially, concurrently (e.g., on one or more different hardware platforms) , or in one or more parallel process streams.

[0089] When implemented by logic circuit 1008 of the processors 1002, the machine executable code 1006 adapts the processors 1002 to perform operations of examples disclosed  herein. By way of non-limiting example, the machine executable code 1006 may adapt the processors 1002 to perform some or a totality of operations of processes for managing address space in a register bank of a system basis chip.

[0090] Also by way of non-limiting example, the machine executable code 1006 may adapt the processors 1002 to perform some or a totality of features, functions, or operations disclosed herein for managing address space in a register bank of a system basis chip or utilizing the same.

[0091] The processors 1002 may include a general purpose processor, a special purpose processor, a central processing unit (CPU) , a microcontroller, a programmable logic controller (PLC) , a digital signal processor (DSP) , an application specific integrated circuit (ASIC) , a field-programmable gate array (FPGA) or other programmable logic device, discrete gate or transistor logic, discrete hardware components, other programmable device, or any combination thereof designed to perform the functions disclosed herein. A general-purpose computer including a processor is considered a special-purpose computer while the general-purpose computer executes functional elements corresponding to the machine executable code 1006 (e.g., software code, firmware code, hardware descriptions) related to examples of the present disclosure. It is noted that a general-purpose processor (may also be referred to herein as a host processor or simply a host) may be a microprocessor, but in the alternative, the processors 502 may include any conventional processor, controller, microcontroller, or state machine. The processors 1002 may also be implemented as a combination of computing devices, such as a combination of a DSP and a microprocessor, a plurality of microprocessors, one or more microprocessors in conjunction with a DSP core, or any other such configuration.

[0092] In one or more examples the storage 1004 includes volatile data storage (e.g., random-access memory (RAM) ) , non-volatile data storage (e.g., Flash memory, a hard disc drive, a solid state drive, erasable programmable read-only memory (EPROM) , without limitation) . In one or more examples the processors 1002 and the storage 1004 may be implemented into a single device (e.g., a semiconductor device product, a system on chip (SOC) , without limitation) . In one or more examples the processors 1002 and the storage 1004 may be implemented into separate devices.

[0093] In one or more examples the machine executable code 1006 may include computer-readable instructions (e.g., software code, firmware code) . By way of non-limiting example, the computer-readable instructions may be stored by the storage 1004, accessed directly by the  processors 1002, and executed by the processors 1002 using at least the logic circuit 1008. Also by way of non-limiting example, the computer-readable instructions may be stored on the storage 1004, transferred to a memory device (not shown) for execution, and executed by the processors 502 using at least the logic circuit 1008. Accordingly, in one or more examples the logic circuit 508 includes electrically configurable logic circuit 1008.

[0094] In one or more examples the machine executable code 1006 may describe hardware (e.g., circuitry) to be implemented in the logic circuit 1008 to perform the functional elements. This hardware may be described at any of a variety of levels of abstraction, from low-level transistor layouts to high-level description languages. At a high-level of abstraction, a hardware description language (HDL) such as an IEEE Standard hardware description language (HDL) may be used. By way of non-limiting examples, Verilog, SystemVerilog or very large scale integration (VLSI) hardware description language (VHDL) may be used.

[0095] HDL descriptions may be converted into descriptions at any of numerous other levels of abstraction as desired. As a non-limiting example, a high-level description can be converted to a logic-level description such as a register-transfer language (RTL) , a gate-level (GL) description, a layout-level description, or a mask-level description. As a non-limiting example, micro-operations to be performed by hardware logic circuits (e.g., gates, flip-flops, registers, without limitation) of the logic circuit 1008 may be described in a RTL and then converted by a synthesis tool into a GL description, and the GL description may be converted by a placement and routing tool into a layout-level description that corresponds to a physical layout of an integrated circuit of a programmable logic device, discrete gate or transistor logic, discrete hardware components, or combinations thereof. Accordingly, in one or more examples the machine executable code 1006 may include an HDL, an RTL, a GL description, a mask level description, other hardware description, or any combination thereof.

[0096] In examples where the machine executable code 1006 includes a hardware description (at any level of abstraction) , a system (not shown, but including the storage 1004) implements the hardware description described by the machine executable code 1006. By way of non-limiting example, the processors 1002 may include a programmable logic device (e.g., an FPGA or a PLC) and the logic circuit 1008 may be electrically controlled to implement circuitry corresponding to the hardware description into the logic circuit 1008. Also by way of non-limiting example, the logic circuit 1008 may include hard-wired logic manufactured by a  manufacturing system (not shown, but including the storage 1004) according to the hardware description of the machine executable code 1006.

[0097] Regardless of whether the machine executable code 1006 includes computer-readable instructions or a hardware description, the logic circuit 1008 is adapted to perform the functional elements described by the machine executable code 1006 when implementing the functional elements of the machine executable code 1006. It is noted that although a hardware description may not directly describe functional elements, a hardware description indirectly describes functional elements that the hardware elements described by the hardware description are capable of performing.

[0098] As used in the present disclosure, the terms “module” or “component” may refer to specific hardware implementations to perform the actions of the module or component and / or software objects or software routines that may be stored on and / or executed by general purpose hardware (e.g., computer-readable media, processing devices, without limitation) of the computing system. In one or more examples, the different components, modules, engines, and services described in the present disclosure may be implemented as objects or processes that execute on the computing system (e.g., as separate threads) . While some of the system and methods described in the present disclosure are generally described as being implemented in software (stored on and / or executed by general purpose hardware) , specific hardware implementations or a combination of software and specific hardware implementations are also possible and contemplated.

[0099] As used in the present disclosure, the term “combination” with reference to a plurality of elements may include a combination of all the elements or any of various different subcombinations of some of the elements. For example, the phrase “A, B, C, D, or combinations thereof” may refer to any one of A, B, C, or D; the combination of each of A, B, C, and D; and any subcombination of A, B, C, or D such as A, B, and C; A, B, and D; A, C, and D; B, C, and D; A and B; A and C; A and D; B and C; B and D; or C and D.

[0100] Terms used in the present disclosure and especially in the appended claims (e.g., bodies of the appended claims, without limitation) are generally intended as “open” terms (e.g., the term “including” should be interpreted as “including, but not limited to, ” the term “having” should be interpreted as “having at least, ” the term “includes” should be interpreted as “includes, but is not limited to, ” without limitation) . As used herein, the term “each” means “some or a totality. ” As used herein, the term “each and every” means a “totality. ”

[0101] Additionally, if a specific number of an introduced claim recitation is intended, such an intent will be explicitly recited in the claim, and in the absence of such recitation no such intent is present. For example, as an aid to understanding, the following appended claims may contain usage of the introductory phrases “at least one” and “one or more” to introduce claim recitations. However, the use of such phrases should not be construed to imply that the introduction of a claim recitation by the indefinite articles “a” or “an” limits any particular claim containing such introduced claim recitation to examples containing only one such recitation, even when the same claim includes the introductory phrases “one or more” or “at least one” and indefinite articles such as “a” or “an” (e.g., “a” and / or “an” should be interpreted to mean “at least one” or “one or more, ” without limitation) ; the same holds true for the use of definite articles used to introduce claim recitations.

[0102] In addition, even if a specific number of an introduced claim recitation is explicitly recited, those skilled in the art will recognize that such recitation should be interpreted to mean at least the recited number (e.g., the bare recitation of “two recitations, ” without other modifiers, means at least two recitations, or two or more recitations, without limitation) . Furthermore, in those instances where a convention analogous to “at least one of A, B, and C, without limitation” or “one or more of A, B, and C, without limitation” is used, in general such a construction is intended to include A alone, B alone, C alone, A and B together, A and C together, B and C together, or A, B, and C together, without limitation.

[0103] Further, any disjunctive word or phrase presenting two or more alternative terms, whether in the description, claims, or drawings, should be understood to contemplate the possibilities of including one of the terms, either of the terms, or both terms. For example, the phrase “A or B” should be understood to include the possibilities of “A” or “B” or “A and B. ”

[0104] Additional non-limiting examples include:

[0105] While the present disclosure has been described herein with respect to certain illustrated examples, those of ordinary skill in the art will recognize and appreciate that the present invention is not so limited. Rather, many additions, deletions, and modifications to the illustrated and described examples may be made without departing from the scope of the invention as hereinafter claimed along with their legal equivalents. In addition, features from one example may be combined with features of another example while still being encompassed within the scope of the invention as contemplated by the inventor.

Claims

1.An apparatus, comprising:a bus slave;a system basis chip including:a register bank;an access controller to confine reach of the bus slave to a select set of addresses of the register bank; andan address space manager to set the select set of addresses of the register bank.2.The apparatus of claim 1, wherein to set the select set of addresses of the register bank, the address space manager to:change addresses within the select set of addresses of the register bank.3.The apparatus of claim 2, wherein to change addresses within the select set of addresses of the register bank, the address space manager to:add or remove addresses from the select set of addresses of the register bank.4.The apparatus of claim 2, wherein to confine reach of the bus slave to the select set of addresses of the register bank, the access controller to:allow interaction of the bus slave with registers of the register bank that correspond to the select set of addresses of the register bank; andblock interaction of the bus slave with registers of the register bank that correspond to addresses outside the select set of addresses of the register bank.5.The apparatus of claim 1, wherein the bus slave is a management data input / output bus slave.6.The apparatus of claim 1, wherein the select set of addresses of the register bank includes native addresses of the bus slave.7.The apparatus of claim 1, wherein the access controller to:permit the address space manager to change the select set of addresses of the register bank at least partially responsive to a key-based validation process.8.The apparatus of claim 1, comprising:a further bus slave,wherein the access controller to:confine reach of the further bus slave to a further select set of addresses of the register bank.9.The apparatus of claim 1, wherein a register of the register bank includes a first key field, a second key field, and an enable field,wherein the first key field to indicate whether or not a first key has been received and validated,wherein the second key field to indicate whether or not a second key has been received and validated,wherein the enable field to indicate whether or not firmware has access to a totality of bits of a control status register of the system basis chip.10.The apparatus of claim 1, wherein a register of the register bank includes an extended address field, a read field, and a write field,wherein the extended address field to hold an extended address in the select set of addresses of the register bank, the extended address associated with an extended register;wherein the read field to indicate whether or not data may be read from the extended register via a data staging register; andwherein the read field to indicate whether or not data may be written to the extended register via a data staging register.11.The apparatus of claim 10, wherein the extended register is a memory mapped register.12.The apparatus of claim 1, wherein the address space manager, responsive to a debug state of the system basis chip, to set the select set of addresses of the register bank to include a totality of an address space of the register bank.13.The apparatus of claim 1, comprising:a physical layer transceiver,wherein the access controller to:confine reach of the physic layer transceiver to a further select set of addresses of the register bank,wherein the select set of addresses is different than the further select set of addresses.

Citation Information

Patent Citations

  • Equipment controller device

    CN104731746A

  • Direct memory access DMA controller and data access method

    CN105786735A

  • An apparatus and method for protecting sensitive information in a chip

    CN109460665A

  • AHB / APB expansion bus interface and system-on-chip

    CN110765052A

  • System-on-chip realized based on FPGA and MCU

    CN112540953A