US20070255872A1 - Bus system and semiconductor integrated circuit - Google Patents
Bus system and semiconductor integrated circuit Download PDFInfo
- Publication number
- US20070255872A1 US20070255872A1 US11/780,031 US78003107A US2007255872A1 US 20070255872 A1 US20070255872 A1 US 20070255872A1 US 78003107 A US78003107 A US 78003107A US 2007255872 A1 US2007255872 A1 US 2007255872A1
- Authority
- US
- United States
- Prior art keywords
- bus
- address
- access
- information
- access right
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Abandoned
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4027—Coupling between buses using bus bridges
- G06F13/404—Coupling between buses using bus bridges with address mapping
Definitions
- the present invention relates to a bus system and, more particularly, to a technology for controlling the access right of a hardware item connected to a bus, which is effective when applied to, e.g., a semiconductor integrated circuit.
- Patent Document 1 As a technology for preventing a data region from being rewritten by an unauthorized access from a task in an extended memory address space apparatus, there has been known one disclosed in, e.g., Patent Document 1. According to the technology, a data region access right definition table which defines the enabling/disabling of access to a data region for a task (or an interruption process) being executed is provided in a cache. An address arithmetic unit extracts a data region ID from a CPU address inputted from a central processing unit (CPU).
- CPU central processing unit
- a register bank control unit references the foregoing definition table in the cache and judges the access right of the task being executed to the data region from the task ID (or the interruption number of the interruption process) of the task that has been stored in an ID register and from the extracted data region ID mentioned above.
- the access is not enabled, a system error judgment is made and, if the access is enabled, the process of converting the foregoing CPU address to an extended address is performed.
- Patent Document 2 There has also been known a technology disclosed in, e.g., Patent Document 2 as a technology for preventing the execution of data transfer to an unauthorized address such as an address to which a memory has not been allocated or an address used for another purpose in performing DMA transfer using a direct memory access controller (DMAC).
- DMAC direct memory access controller
- a valid address range individually allocated to the memory or the peripheral circuit has been stored preliminarily in a valid address table such that a monitor unit compares the address range indicated by the data used for the transfer process that has been stored in the individual address registers with the address range stored in the valid address table in performing the transfer process and, when the address range indicated by the data used for the transfer process deviates from the valid address range, the transfer process is interrupted.
- Patent Document 1 Japanese Unexamined Patent Publication No. 2001-005726 (FIG. 2)
- Patent Document 2 Japanese Unexamined Patent Publication No. 2001-297054 (FIG. 2)
- Patent Document 1 uses the CPU to locally judge access enabling or disabling and the technology disclosed in Patent Document 2 uses the DMAC to locally judge access enabling or disabling, when such a CPU and a DMA are connected to a common bus, the function of access right judgment is distributed to the CPU and the DMAC so that access right judging resources exist in overlapping relation. Accordingly, when the address range of the subject of access or any of bus masters is changed, a rewrite operation for maintaining the identities of the access right judging resources becomes troublesome.
- bus masters for MPEG processes, three dimensional graphics, an encryption process, and the like are connected to a common bus so that the problem caused by the distribution of the function of access right judgment to the individual bus masters becomes more conspicuous.
- an address monitor unit including a table which is shared among the plurality of bus masters and stores therein access right information that has been preset in correspondence to a subject of access and to address information corresponding thereto and capable of determining, by referencing the table, the presence or absence of an access right of each of the bus masters based on subject-of-access information of each of the bus masters and on the address information outputted from the bus master.
- the address monitor unit references the table and determines the presence or absence of the access right for each of the bus masters based on the subject-of-access information of each of the bus masters and on the address information outputted from the bus master.
- the table is shared among the plurality of bus masters and stores therein the access right information that has been preset in correspondence to the subject of access and to the address information corresponding thereto. Since the table is shared among the plurality of bus masters, when the address range of the subject of access or any of the bus masters is changed, the table may be rewritten appropriately. That is, since the function of access right judgment has not been distributed to the individual bass masters, the change in the address range of the subject of access or any of the bus masters can easily be handled only by rewriting the table shared among the plurality of bus masters.
- the address monitor unit is embedded in a router which allows routing for transferring a packet which can be transferred via the bus to a target hardware item uniquely determined by a destination address of the packet.
- the address monitor unit can be comprised of: a first decoder capable of decoding the subject-of-access information received via the bus; a second decoder capable of decoding the address information inputted via the bus; a detecting circuit capable of detecting the access right information specified by an output of the first decoder and an output of the second decoder; and a judging circuit capable of outputting judgment information on the presence or absence of the access right to the bus based on a detection output of the detecting circuit.
- Each of the plurality of bus masters can be provided with an ID register which holds the subject-of-access information such that it is outputtable to the bus as required.
- a semiconductor integrated circuit can be formed to include: the bus system; and the plurality of bus masters coupled to the bus system.
- the plurality of bus masters include a central processing unit and the table in the address monitor unit can be constituted to be rewritable by the central processing unit.
- the subject-of-access information contained in the central processing unit can be a process ID used by the central processing unit for memory management.
- a technology can be provided which allows, when a plurality of bus masters are connected to a common bus, easy handling of a change in the address range of the subject of access or any of the bus masters.
- FIG. 1 is a block diagram of an exemplary entire structure of a microcomputer as an example of a semiconductor integrated circuit according to the present invention
- FIG. 2 is a flow chart showing a main operation in the foregoing microcomputer
- FIG. 3 is a view illustrating examples of the encoding of an opcode signal and a response_opcode signal in the foregoing microcomputer;
- FIG. 4 is an operational timing chart when address monitoring means judges a normality in an 8-byte load in the foregoing microcomputer
- FIG. 5 is an operational timing chart when the address monitoring means judges an error in the 8-byte load in the foregoing microcomputer
- FIG. 6 is an operational timing chart when the address monitoring means judges a normality in an 8-byte store in the foregoing microcomputer.
- FIG. 7 is an operational timing chart when the address monitoring means judges an error in the 8-byte store in the foregoing microcomputer.
- An embodiment which adds address monitoring means to the router of a bus system is the best mode for carrying out the present invention.
- a router is means for viewing a destination address to which a packet that has been passed to the bus is to be transferred and sending the packet to a target hardware item which is uniquely determined by the address.
- a packet is composed of the destination address, data to be transferred, and other control signals.
- the present embodiment allows an ID number to be set to the packet. Since the packet flowing on the bus inevitably passes through the router, the router is an optimum functional unit to which the address monitoring unit according to the present invention is to be added.
- An access right table held by the address monitoring unit has bits commensurate with all ID numbers in each address range and each of the bits corresponds to any of the ID numbers. In each of the bits, whether or not the possessor of the ID number corresponding to the bit has an access right to the address range is stored as a value of 0 or 1. There are two methods of access to the access right table.
- the access right table has been address-mapped and is readable/writable by using a software item. It is also possible to select a row in the access right table based on the address range, select a column in the access right table based on the ID number, and read the bit at the intersection of the selected row and the selected column.
- the ID number can also be set to the packet allowed to flow on the bus by each of the bus masters in the present embodiment.
- an ID number signal line is added to an address signal line, a data signal line, and other control signal lines.
- Another method can also be considered which allows the ID number to flow on the control signal lines without adding the ID number signal line.
- Each of the bus masters has one ID register for storing therein the ID number.
- the ID register has been address-mapped and is rewritable by using a software item.
- the ID number is preset to the ID register by using the software item before the bus master performs an inherently objective operation.
- the packet passes through the router and through the address monitoring unit in the router.
- the address monitoring unit acquires the destination address and ID number of the packet.
- the address monitoring unit judges the address range in the table in which the address is included and views the value of the bit corresponding to the ID number.
- the address monitoring unti judges an error or a normality based on whether the value of the bit is 0 or 1.
- FIG. 1 shows a microcomputer as an example of a semiconductor integrated circuit according to the present invention.
- the microcomputer is formed on a single semiconductor substrate such as a monocrystalline silicon substrate by using a well-known semiconductor manufacturing technology, though there is no particular limit thereto.
- the ID number to be set to the ID register of each of the bus masters the present embodiment uses a virtual address space identification number managed by an operating system.
- a microcomputer 100 includes: a CPU core 101 ; a router 103 ; an external I/F (external interface) 104 ; a DMAC (Direct Memory Access Controller) 105 ; and a 3DGC (3-Dimension Graphics Controller) 106 , though there is no particular limit thereto.
- a memory 107 is assumed to be a DRAM (Dynamic Random Access Memory) disposed outside the microcomputer 100 , though there is no particular limit thereto.
- the CPU core 100 , the router 103 , the external I/F 104 , the DMAC 105 , the 3DGC 106 are coupled to each other to be capable of transmitting a signal therebetween by using an internal bus 102 .
- the memory 107 is connected to the external I/F 104 via a memory bus 108 .
- the external I/F 104 is capable of connecting not only the memory 107 but also a plurality of memories or another semiconductor integrated circuit to the outside.
- the CPU core 101 has the function of performing a specified arithmetic process in accordance with a predetermined program and is comprised of an MMU (Memory Management Unit) 110 and an ID (IDentification) register 120 , though there is no particular limit thereto.
- the MMU 110 includes a TLB (Translation Lookaside Buffer) 111 and a PTE.
- ASID Peage Table Entry resister's Address Space Identification part
- the TLB 111 is composed of 64 rows and columns indicative of the components of the individual rows.
- the individual rows of the TLB 111 are termed entries, of which the 0-th and 1st entries are denoted by 117 and 118 , respectively.
- Each of the columns of the TLB 111 is composed of a Valid 113 , an ASID (Address Space IDentification) 114 , a VPN (Virtual Page Number) 115 , a PPN (Physical Page Number) 116 , and other bits. Since the other bits are not important, the description thereof will be omitted.
- the component of the Valid 113 is one bit.
- the entry in which the value of the bit composing the Valid 113 is 1 is in use and has a valid content, while the entry in which the value of the bit composing the Valid 113 is 0 is out of use and has an invalid content.
- the component of the ASID 114 is an address space identification number, which is assumed herein to be an 8-bit integral value with no sign.
- An ASID number is a number for identifying a virtual address space which is provided for each process on a one-by-one basis and is generally termed a process ID number or the like.
- the virtual address space is divided into pages (Pages) each of a prescribed size.
- the size is indicated by a power-of-2 number and is selected among the sizes of 1 Mbytes, 64 Mbits, and the like.
- the component of the VPN 115 indicates the ordinal position of the page when the virtual address space starting at the 0-th address has been divided into the pages of the size and stores a page number in use or having a high possibility of being used in the virtual address space indicated by the ASID number.
- a physical address space is divided into the same size into which the virtual address space has been divided.
- the component of the PPN 116 indicates the ordinal position of the page when the physical address space starting at the 0-th address has been divided into the pages of the size.
- the entry 117 Since the Valid bit has a logic value “1”, the entry 117 has a valid value and associates the x-th page in the virtual address space of which the ASID number is 01 with the m-th page in the physical address space.
- the presence of the entry 117 causes the MMU 110 to convert, when a process having the virtual address space identification number (ASID number) of 01 accesses the p-th word on the x-th page in the virtual address space, the access in the virtual address space to access to the p-th word on the m-th page in the physical address space.
- ASID number virtual address space identification number
- the entry Since the Valid bit in the entry 118 is 1, the entry has a valid value and associates the y-th page in the virtual address space of which the ASID number is FE with the n-th page in the physical address space.
- the presence of the entry 118 causes the MMU 110 to convert, when a process having the virtual address space identification number of FE accesses the q-th word on the y-th page in the virtual address space, the access in the virtual address space to access to the q-th word on the n-th page in the physical address space.
- the PTE. ASID 112 stores therein the identification number of the virtual address space for which the arithmetic process is currently being executed by the CPU core 101 .
- the PTE. ASID represents an ASID region in the PTE register and is composed of one or more bits.
- the ID register 120 has the same value as the PTE. ASID 112 .
- the CPU core 101 is a bus master and outputs the value in the ID register 120 to ID signals 134 on outputting a packet to the bus.
- the internal bus 102 is a mechanism which transfers the packet outputted from the bus master to the internal bus.
- the packet is comprised of a control instruction, the destination address, the data to be transferred, and the ID number, though there is no particular limit thereto. These are transmitted by the internal bus 102 as control signals 131 , address signals 132 , data signals 133 , and ID signals 134 , in synchronization with a bus clock 130 . These signals are connected to the CPU core 101 , the router 103 , the external I/F 104 , the DMAC 105 , and the 3DGC 106 .
- the router 103 To the CPU core 101 , the router 103 , the external I/F 104 , the DMAC 105 , and the 3DGC 106 , respective specific address ranges have been allocated preliminarily.
- the router 103 has the function of transferring the packet to the destination address thereof.
- the external I/F 104 receives the packet comprised of the control signals 131 , the address signals 132 , and the data signals 133 , converts the received packet to a signal corresponding to the type of the memory connected externally to the microcomputer, such as an SRAM or a DRAM, outputs the signal resulting from the conversion to the external bus 108 , and performs a read or write operation with respect to a specified address in the memory 107 .
- the external I/F 104 is a bus slave. Although the bus slave is capable of receiving the packet initiated by a bus master, there is no such case where the packet is initiated by the bus slave so that the bus slave only outputs a response packet to the received packet to the bus. The possessor of the response packet is the bus master. The bus slave need not store an ID number and has no ID register.
- the DMAC 105 has the function (direct memory access control function) of controlling data transfer performed between itself and the memory 107 without interposition of the CPU core 101 and is comprised of a control register 140 , an source address register 141 , a destination address register 142 , a transfer number-of-bytes register 143 , and the ID register 121 , though there is no particular limit thereto. Addresses are allocated to the source address register 141 , the destination address register 142 , the transfer number-of-bytes register 143 , and the ID register 121 and data can be read or written by specifying an address from the program being executed by the CPU core.
- a start flag for the control register 140 is set to 1 in the state in which data has preliminarily been written in the source address register 141 , destination address register 142 , and transfer number-of-bytes register 143 of the DMAC 105 by using a program and a transfer method and the like have preliminarily been specified to the control register 140 .
- the content of the memory is transferred by the transfer number of bytes from the source address to the destination address.
- the CPU core 101 sets the same ID number as the virtual address space identification number of the process which controls the DMAC 105 by using a program such as a driver.
- the DMAC 105 is a bus master and outputs the value in the ID register 121 to the ID signals 134 on outputting a packet to the bus.
- the 3DGC 106 has the function of controlling a three dimensional graphic process and is comprised of a control register 150 , a frame address register 151 , and an ID register 122 , though there is no particular limit thereto. Addresses are allocated to the control register 150 , the frame address register 151 , and the ID register 122 and data can be read or written by specifying an address from the program being executed by the CPU core.
- the 3DGC 106 receives a control instruction and a parameter at the control register 150 and is capable of performing a data read or write operation with respect to a specified location in a memory region shown in the frame address register 151 .
- the CPU core 101 sets the same ID number as the virtual address space identification number of the process which controls the 3DGC 106 by using a program such as a driver.
- the 3DGC 106 is a bus master and outputs the value in the ID register 122 to the ID signals 134 on outputting a packet to the bus.
- the router 103 has a routing function for transferring the packet that can be transferred via the internal bus 102 to a target hardware item uniquely determined by the destination address of the packet.
- the router 103 is provided with address monitoring unit 160 .
- the address monitoring unit 160 has an access right monitoring function based on the inputted address signal and is comprised of an address register 161 , an ID register 162 , an address decoder 163 , an ID decoder 164 , a detecting circuit 165 , an error judging circuit 166 , and an access right table 170 , though there is no particular limit thereto. Addresses have been allocated to the access right table 170 and data can be read or written by specifying any of the addresses from the program executed by the CPU core 101 .
- the address monitoring unit 160 stores the address signal of the packet in the address register 161 and stores the ID signal of the packet in the ID register 162 . Then, the value in the address register 161 is decoded in the address decoder 163 and one of the rows in the access right table 170 is selected by an output of the address decoder 163 . In parallel to this, the value in the ID register 162 is decoded by the ID decoder 164 and one of the columns in the access right table 170 is selected by an output of the ID decoder 164 .
- the detecting circuit 165 detects the value of the bit at the intersection of the selected row and the selected column in the access right table 170 and inputs the detected value to the error judging circuit 166 .
- the error judging circuit 166 allows the router to continue a normal process without outputting an error when the logic value “1” is inputted, while outputting the error signal to the control signals 131 on the internal bus 102 when the logic value “0” is inputted.
- the address monitoring unit 160 described above corresponds to the address monitor unit according to the present invention.
- FIG. 2 shows a main operation in the microcomputer 100 described above.
- each of the procedures following the triangular marks is assumed to be the operation of a hardware item and the procedures following the circular marks are assumed to be settings made by using a software item.
- a system reset 201 the microcomputer 100 is brought into an initial state when the microcomputer 100 is first energized or when the microcomputer 100 receives a reset request signal.
- a process 202 is initialization using a hardware item after the system reset 201 .
- the first procedure of the process 202 is the initialization of the access right table 170 of the address monitoring unit 160 of the router 102 .
- each of the bits in the access right table 170 is set to the logic value “1” such that the same operation as in the case where the address monitoring unit 160 is not provided, similarly to the case with the conventional microcomputer, is performed. In this case, settings are made to enable access using any ID number to any address.
- the initial value in the access right table 170 may be changed appropriately depending on the system. It will easily be appreciated that a system reset procedure is performed in addition to the first procedure of the process 202 .
- a process 203 is initialization using a software item.
- the virtual address space identification number of an OS including an exceptional process handler is set to 00.
- the present embodiment uses the value of the current virtual address space identification number stored in the PTE. ASID 112 by copying it to the ID register 120 of the CPU core 101 , it is also possible to allocate an OS-dedicated special value as the virtual address space identification number with the view to distinguishing the OS from a normal process.
- the hardware item copies the value in the PTE. ASID 112 therefrom to the ID register 120 of the CPU core 101 .
- the initialization is performed to enable the OS to access all the addresses.
- the initialization is performed to disable a user process with any of ungenerated virtual address space identification numbers including ⁇ 1(0 ⁇ FF) from accessing any of the addresses.
- ⁇ 1(0 ⁇ FF) is set as the virtual address space identification number to the ID register of each of the bus masters except for the CPU core 101 . It is assumed that the virtual address space identification number ⁇ 1(0 ⁇ FF) is a special number which is not used as the virtual address space identification number.
- the present embodiment sets ⁇ 1(0 ⁇ FF) to the ID register 121 of the DMAC 105 and sets ⁇ 1(0 ⁇ FF) to the ID register 122 of the 3DGC 106 .
- a semaphore acquired when a read or write operation is performed exclusively to the access right table 170 by using a software item is generated.
- the semaphore used herein is a mechanism for providing synchronization in a multi-task OS in which a plurality of processes are simultaneously executed and defined as a type of flag which manages the occupied state of a resource.
- the steady state is basically an infinite loop which performs a specified process in response to the occurrence of an event or a request.
- a process 220 is executed when a request to generate a new process occurs.
- an unused ID number is generated and designated as the virtual address space identification number of the new process.
- a process 221 is executed.
- the ID number of the given process is set to the PTE. ASID 112 so that the virtual address space is switched to the given process.
- the value in the PTE. ASID 112 is copied therefrom to the ID register 120 by using a hardware item.
- 0 is set to the PTE.
- ASID 112 so that the virtual address space is switched to the OS.
- ASID 112 is copied therefrom to the ID register 120 by using a hardware item.
- a process 223 is executed in addition to a procedure for actually reserving the physical memory.
- the event which reserves the physical memory block occurs in such cases: (1) where the OS preliminarily allocates the page of the physical address space to the page of the virtual address space to prevent the occurrence of a page fault on switching the address space; (2) where the page fault occurs and the page of the physical address space is allocated to the page of the virtual address space in which the page fault has occurred; and (3) where a system call for acquiring a physical address block is made.
- the ID number of the virtual address space with the page fault is used.
- the ID number of the virtual address space which has made the system call is used.
- a semaphore for the access right table 170 is acquired. This semaphore has been generated in the fifth procedure of the process 203 .
- 1 is set to the bit at the intersection of the row corresponding to the address range of the physical memory block reserved in the access table 170 and the column with the ID number.
- the semaphore for the access right table 170 is released.
- a process 224 is executed.
- a semaphore for the bus master is acquired. It is to be noted that this semaphore has been generated in the sixth procedure of the process 203 .
- the virtual address space identification number which uses the bus master is set to the ID register of the bus master.
- the bus master has the same access right as the virtual address space.
- the DMAC 105 which is one of the bus masters has the determined number of resources so that they are managed by using the semaphore and a driver program for acquiring the DMAC 105 is produced.
- This driver program acquires a semaphore for the DMAC 105 , while setting the virtual address space identification number of a process as the subject of the reservation of the DMAC to the ID register 121 of the DMAC 105 .
- a process 225 is executed by a hardware item.
- the xxxxxxxx address is outputted to the address signals 132 and the value in the ID register of the bus master is outputted to the ID signals 134 .
- the control signals are transmitted via the control signals 131 and, if necessary, data is outputted to the data signals 133 .
- the router 103 stores the address in the address register 161 and stores the value of the ID signals in the ID register 162 .
- the value in the address register 161 is decoded in the address decoder 163 and the corresponding one of the rows in the access right table 170 is selected, while the value in the ID register 162 is decoded simultaneously in the ID decoder 164 and the corresponding one of the columns in the access right table 170 is selected.
- the value of the bit at the intersection of the selected row and the selected column is extracted in the detecting circuit 165 and outputted to the error judging circuit 166 . If the value is 1, the normal operation is continued. If the value is 0, the error signal is outputted to the control signals 131 .
- a process 226 is executed.
- a semaphore for the access right table 170 of the address monitoring unit 160 of the router 103 is acquired.
- each of the bits in the column corresponding to the ID number of the process in the access right table 170 is set to 0, whereby access using the ID number is disabled.
- the semaphore is released.
- ⁇ 1(0 ⁇ FF) is set to the ID register of the bus master.
- the semaphore that has been acquired in the process 224 is released and, if there is a release procedure specific to the bus master, it is executed.
- a judgment 218 when a shut-down request to the OS occurs, the process flow shifts to a terminal 230 . If there is no shut-down request, the process flow returns to the judgment 210 and repeats the same process as described above.
- the x-th logic page of the process with the virtual address space identification number (ASID) 01 has been allocated to the m-th physical page in the memory 107 through the initial allocation of the physical page to the logic page of the process or by a page fault recovery process.
- ASID virtual address space identification number
- the y-th logic page of the process with the virtual address space identification number (ASID) FE has been allocated to the n-th physical page in the memory 107 through the initial allocation of the physical page to the logic page of the process or by the page fault recovery process.
- ASID virtual address space identification number
- the k-th row in the access right table 170 has set 1 to each of the 01-th column and the FE-th column in the access right table 170 since the process with the virtual address space identification number (ASID) 01 has acquired an access right through a system call and the process with the virtual address space identification number (ASID) FE has also acquired an access right through a system call.
- ASID virtual address space identification number
- ASID virtual address space identification number
- the 00-th column in the access right table 170 shows the access right of the OS with the ID number of 0 so that 1 has been set to each of the bits corresponding to all the address ranges in which the resources validly exist.
- the FF-th column in the access right table 170 shows the access right of the bus master with the ID number of ⁇ 1, i.e., FF.
- the bus master having ⁇ 1(FF) as the ID number does not have an access right to any of the resources.
- the access right of the CPU core 101 not only the access right of the CPU core 101 but also the access right of each of the bus masters such as the DMAC 105 and the 3DGC 106 can be controlled by using the access monitoring unit.
- FIG. 4 shows a normal case in an 8-byte load.
- FIG. 5 shows an error case in the 8-byte load.
- FIG. 6 shows a normal case in an 8-byte store.
- FIG. 7 shows an error case in the 8-byte store.
- the internal bus 102 performs transfer in synchronization with the bus clock 130 . Data transferred in one clock cycle is termed a cell. A packet is composed of one or more cells. On the internal bus 102 , a circuit requesting transfer is termed a bus master, while a circuit responding to the transfer is termed a bus slave. A transaction on the internal bus is initiated by the transmission of a request packet containing the content of a request from the bus master to the bus slave. The transaction is completed by the transmission of a response packet containing the content of a response from the bus slave to the bus master. A circuit positioned between the bus master and the bus slave to relay the packets is the router 103 . The router 103 transfers the request packet received from one bus master to a specified bus slave. The router 103 also transmits the response packet received from one bus slave to the bus master that has initiated the transaction.
- a clock signal corresponds to the bus clock 130 and the logic values “0” and “1” are alternately repeated with a given cycle period.
- the other signals which will be described later, are fetched by the bus master, the router, and the bus slave.
- One transaction from a given bus master to a given bus slave is completed by: ( 1 ) the transmission of a request packet from the bus master to the router 103 ; ( 2 ) the transmission of the request packet from the router 103 to the bus slave; ( 3 ) the transmission of a response packet from the bus slave to the router 103 ; and ( 4 ) the transmission of the response packet from the router 103 to the bus slave, which are performed in this order. If an error is detected in the error judging circuit 166 , however, only the transmissions ( 1 ) and ( 4 ) are executed. A detailed description will be given herein below to the transmissions ( 1 ) to ( 4 ) mentioned above.
- the request signal ( 1 a ) indicates that, of the signals used by the bus master to transfer the request packet, the address signal ( 1 d ), the opcode signal ( 1 e ), the data signal ( 1 f ), the source signal ( 1 g ), and the ID signal ( 1 h ) are outputting valid values, while the grant signal ( 1 b ) indicates to the bus master that the router 103 can receive the request packet.
- the grant signal ( 1 b ) indicates to the bus master that the router 103 can receive the request packet.
- the grant signal ( 1 b ) indicates to the bus master that the router 103 can receive the request packet.
- the request signal ( 1 a ) When the request signal ( 1 a ) has the logic value “0”, the cell or cells are not transferred (which is ignored by the router 103 ).
- the end_of_packet signal ( 1 c ) indicates that the bus master is outputting the final cell of the request packet.
- the address signal ( 1 d ) indicates the destination address of the transaction.
- the opcode signal ( 1 e ) indicates the type and transfer size of the transaction. An example of the encoding of the opcode signal ( 1 e ) is shown in the opcode column in FIG. 3 .
- the data signal ( 1 f ) represents data transferred from the bus master to the router 103 .
- the source signal ( 1 g ) is an identifier outputted from the bus master to specify, when the router 103 relays the response packet, the destination of the response packet.
- the ID signal ( 1 h ) is an ID number transferred from the bus master to the router 103 .
- a request signal ( 2 a ) a request signal ( 2 a ); a grant signal ( 2 b ); an end_of_packet signal ( 2 c ); an address signal ( 2 d ); an opcode signal ( 2 e ); a data signal ( 2 f ); and a source signal ( 2 g ).
- the request signal ( 2 a ) indicates that, of the signals used for the transfer of the request packet from the router 103 to the bus slave, the end_of_packet signal ( 2 c ), the address signal ( 2 d ), the opcode signal ( 2 e ), the data signal ( 2 f ), and the source signal ( 2 g ) are outputting valid values.
- the grant signal ( 2 b ) indicates that the bus slave can receive the request packet. On the rising edge of the clock signal, when each of the request signal ( 2 a ) and the grant signal ( 2 b ) has the logic value “1”, the cell or cells of the request packet are transferred from the router 103 to the bus slave.
- the request signal ( 2 a ) When the request signal ( 2 a ) has the logic value “0”, the cell or cells are not transferred.
- the end_of_packet signal ( 2 c ) indicates that the router 103 is outputting the final cell.
- the address signal ( 2 d ) indicates the destination address of the transaction.
- the opcode signal ( 2 e ) indicates the type and transfer size of the transaction. An example of the encoding of the opcode signal ( 2 e ) is shown in the opcode column in FIG. 3 .
- the data signal ( 2 f ) represents data transferred from the router 103 to the bus master.
- the source signal ( 2 g ) is an identifier outputted from the bus master to specify, when the router 103 relays the response packet, the destination of the response packet.
- a response_request signal ( 3 a ) indicates that, of the signals used by the bus slave to transfer the response packet, the response_opcode signal ( 3 d ), the response_data signal ( 3 e ), and the response_source signals ( 3 f ) are outputting valid values.
- the response_request signal ( 3 a ) and the response_grant signal ( 3 b ) On the rising edge of the clock signal, when each of the response_request signal ( 3 a ) and the response_grant signal ( 3 b ) has the logic value “1”, the cell or cells of the response packet are transferred from the bus slave to the router 103 . When the response_request signal ( 3 a ) has the logic value “0”, the cell or cells are not transferred (which is ignored by the router 103 ). The response_grant signal ( 3 b ) indicates that the router 103 can receive the response packet. On the rising edge of the clock signal, when each of the response_request signal ( 3 a ) and the response_grant signal ( 3 b ) has the logic value “1”, the cell or cells of the response packet are transferred from the bus slave to the router 103 .
- the response_end_of_packet signal ( 3 c ) indicates that the bus slave is outputting the final cell of the response packet.
- the response_end_of_packet signal ( 3 c ) is valid when the logic value thereof is “1” and is invalid when the logic value thereof is “0”.
- the response_end_of_packet signal ( 3 c ) falls to the logic value “0” when the logic value of the response_request signal ( 3 a ) is “0”.
- the response_opcode signal ( 3 d ) indicates the result of the transaction.
- the response_data signal ( 3 e ) represents data transferred from the bus slave to the router 103 .
- the response_source signal ( 3 f ) is an identifier for allowing the specification of the target bus master of the response packet when the router 103 routes the response packet.
- the bus slave Upon receipt of the request packet, the bus slave stores the value of the source signal ( 2 g ) and outputs the stored value as the response_source signal ( 3 f ) on transmitting the corresponding response packet.
- the response_valid signal ( 4 a ) indicates that the response_end_of_packet signal ( 4 b ), the response_opcode signal ( 4 c ), the response_data signal ( 4 d ), and the response_source signal ( 4 e ), which are used for the transfer of the response packet from the router 103 to the bus master, are outputting valid values.
- the response_valid signal ( 4 a ) On the rising edge of the clock signal, when the response_valid signal ( 4 a ) has the logic value “1”, the cell or cells of the response packet are transferred from the router 103 to the bus master (M).
- the response_end_of_packet signal ( 4 b ) indicates that the router 103 is outputting the final cell of the response packet.
- the response_end_of_packet signal ( 4 b ) is valid when the logic value thereof is “1” and is invalid when the logic value thereof is “0”.
- the response_opcode signal ( 4 c ) indicates the result of the transaction.
- An example of the encoding of the response_opcode signal ( 4 c ) is shown in the response_opcode column in FIG. 3 .
- the response_data signal ( 4 e ) represents data transferred from the router 103 to the bus master.
- the response_source signal ( 4 e ) has the same value as the source signal ( 1 g ) outputted from the bus master upon the transmission of the corresponding request packet.
- the internal bus 102 is composed of: the control signals 131 ; the address signals 132 ; the data signals 133 ; and the ID signals 134 .
- the control signals 131 is designated herein as a generic name for the following group of signals.
- control signals 131 is designated as the generic name for: the request signal ( 1 a ); the grant signal ( 1 b ); the end_of_packet signal ( 1 c ); the opcode signal ( 1 e ); the source signal ( 1 g ); the request signal ( 2 a ); the grant signal ( 2 b ); the end_of_packet signal ( 2 c ); the opcode signal ( 2 e ); the source signal ( 2 g ); the response_request signal ( 3 a ); the response_grant signal ( 3 b ); the response_end_of_packet signal ( 3 c ); the response_opcode signal ( 3 d ); the response_source signal ( 3 f ); the response_valid signal ( 4 a ); the response_end_of_packet signal ( 4 b ); the response_opcode signal ( 4 c ); and the response_source signal ( 4 e ).
- the address signals 132 are a generic name for the address signals ( 1 d ) and the address signals ( 2 d ).
- the data signals 133 are a generic name for the data signals ( 1 f ), the data signals ( 2 f ), the response_data signals ( 3 e ), and the response_data signals ( 4 d ).
- the ID signals 134 correspond to the ID signal ( 1 h ).
- the access right table 170 is shared among a plurality of bus masters such as the CPU core 101 , the DMAC 105 , and the 3DGC 106 , when the address range of the subject of access or any of the bus masters is changed, the access right table 170 may be rewritten appropriately under the control of the CPU core 101 . In other words, since the function of access right judgment has not been distributed to the individual bus masters, a change in the address range of the subject of access or any of the bus masters can easily be handled only by rewriting the access right table 170 shared among the plurality of bus masters mentioned above.
- the router 103 inherently has the function of transferring a packet to the destination address thereof and, by providing the router 103 having such a function with the address monitoring unit 160 , it becomes possible to use common parts to compose different registers and the like. Accordingly, the number of elements can be reduced compared with the case where the address monitoring unit 160 is formed distinctly from the router 103 .
- the foregoing embodiment has provided the ID register 120 distinctly from the PTE. ASID 112 and copied the value in the PTE. ASID 112 therefrom to the ID register 120 by using a hardware item, another embodiment can be implemented by modifying the foregoing embodiment such that the PTE. ASID 112 and the ID register 120 are formed as one hardware resource.
- the ID number may also be written in the ID register 120 using a software item or a hardware item by referencing the value in the PTE. ASID 112 .
- the ID number to be set to the ID register 120 an ID number with a granularity different from that of the virtual address space identification number can be set.
- the ID numbers with the same granularity are used in the ID register 120 of the CPU core 101 , in the ID register 121 of the DMAC 105 , in the ID register 122 of the 3DGC 106 , and in the columns of the access right table 170 of the router 103 .
- the present invention can be applied under the condition that a bus is contained therein.
Abstract
A technology for allowing easy handling of a change in the address range of the subject of access or any of bus masters is provided. There is provided an address monitor unit including a table which is shared among a plurality of bus masters and stores therein access right information that has been preset in correspondence to the subject of access and to address information corresponding thereto and capable of determining, by referencing the table, the presence or absence of an access right for each of the bus masters based on the subject-of-access information of each of the bus masters and on address information outputted from the bus master. Since the table is shared among the plurality of bus masters, when the address range of the subject of access or any of the bus masters is changed, the table may be rewritten appropriately. This allows, when a plurality of bus masters are connected to a common bus, easy handling of a change in the address range of the subject of access or any of the bus masters.
Description
- The present application claims priority from Japanese patent application No. 2004-273226 filed on Sep. 21, 2004, the content of which is hereby incorporated by reference into this application.
- The present invention relates to a bus system and, more particularly, to a technology for controlling the access right of a hardware item connected to a bus, which is effective when applied to, e.g., a semiconductor integrated circuit.
- As a technology for preventing a data region from being rewritten by an unauthorized access from a task in an extended memory address space apparatus, there has been known one disclosed in, e.g.,
Patent Document 1. According to the technology, a data region access right definition table which defines the enabling/disabling of access to a data region for a task (or an interruption process) being executed is provided in a cache. An address arithmetic unit extracts a data region ID from a CPU address inputted from a central processing unit (CPU). A register bank control unit references the foregoing definition table in the cache and judges the access right of the task being executed to the data region from the task ID (or the interruption number of the interruption process) of the task that has been stored in an ID register and from the extracted data region ID mentioned above. When the access is not enabled, a system error judgment is made and, if the access is enabled, the process of converting the foregoing CPU address to an extended address is performed. - There has also been known a technology disclosed in, e.g.,
Patent Document 2 as a technology for preventing the execution of data transfer to an unauthorized address such as an address to which a memory has not been allocated or an address used for another purpose in performing DMA transfer using a direct memory access controller (DMAC). According to the technology, when the DMA transfer is performed by using the DMAC, data stored in a store region at one address (source address) is sequentially read out and transferred to a store region at the other address (destination address) by referencing an address range used for a data transfer process between the memory and a peripheral circuit. Data indicative of one and the other addresses has been stored in address registers in the DMAC. At this time, a valid address range individually allocated to the memory or the peripheral circuit has been stored preliminarily in a valid address table such that a monitor unit compares the address range indicated by the data used for the transfer process that has been stored in the individual address registers with the address range stored in the valid address table in performing the transfer process and, when the address range indicated by the data used for the transfer process deviates from the valid address range, the transfer process is interrupted. - [Patent Document 1] Japanese Unexamined Patent Publication No. 2001-005726 (FIG. 2)
- [Patent Document 2] Japanese Unexamined Patent Publication No. 2001-297054 (FIG. 2)
- Since the technology disclosed in
Patent Document 1 uses the CPU to locally judge access enabling or disabling and the technology disclosed inPatent Document 2 uses the DMAC to locally judge access enabling or disabling, when such a CPU and a DMA are connected to a common bus, the function of access right judgment is distributed to the CPU and the DMAC so that access right judging resources exist in overlapping relation. Accordingly, when the address range of the subject of access or any of bus masters is changed, a rewrite operation for maintaining the identities of the access right judging resources becomes troublesome. In a recent system, in particular, a large number of bus masters for MPEG processes, three dimensional graphics, an encryption process, and the like are connected to a common bus so that the problem caused by the distribution of the function of access right judgment to the individual bus masters becomes more conspicuous. - It is therefore an object of the present invention to provide a technology which allows, when a plurality of bus masters are connected to a common bus, easy handling of a change in the address range of the subject of access or any of bus masters.
- The above and other objects and novel features of the present invention will become apparent from the description of the present specification and the accompanying drawings.
- A brief description will be given to the outline of the representative aspects of the present invention disclosed in the present application.
- Specifically, in a bus system including a bus to which a plurality of bus masters are commonly connected, there is provided an address monitor unit including a table which is shared among the plurality of bus masters and stores therein access right information that has been preset in correspondence to a subject of access and to address information corresponding thereto and capable of determining, by referencing the table, the presence or absence of an access right of each of the bus masters based on subject-of-access information of each of the bus masters and on the address information outputted from the bus master.
- The address monitor unit references the table and determines the presence or absence of the access right for each of the bus masters based on the subject-of-access information of each of the bus masters and on the address information outputted from the bus master. The table is shared among the plurality of bus masters and stores therein the access right information that has been preset in correspondence to the subject of access and to the address information corresponding thereto. Since the table is shared among the plurality of bus masters, when the address range of the subject of access or any of the bus masters is changed, the table may be rewritten appropriately. That is, since the function of access right judgment has not been distributed to the individual bass masters, the change in the address range of the subject of access or any of the bus masters can easily be handled only by rewriting the table shared among the plurality of bus masters.
- At this time, the address monitor unit is embedded in a router which allows routing for transferring a packet which can be transferred via the bus to a target hardware item uniquely determined by a destination address of the packet.
- The address monitor unit can be comprised of: a first decoder capable of decoding the subject-of-access information received via the bus; a second decoder capable of decoding the address information inputted via the bus; a detecting circuit capable of detecting the access right information specified by an output of the first decoder and an output of the second decoder; and a judging circuit capable of outputting judgment information on the presence or absence of the access right to the bus based on a detection output of the detecting circuit.
- Each of the plurality of bus masters can be provided with an ID register which holds the subject-of-access information such that it is outputtable to the bus as required.
- A semiconductor integrated circuit can be formed to include: the bus system; and the plurality of bus masters coupled to the bus system.
- At this time, the plurality of bus masters include a central processing unit and the table in the address monitor unit can be constituted to be rewritable by the central processing unit.
- The subject-of-access information contained in the central processing unit can be a process ID used by the central processing unit for memory management.
- The following is the brief description of effects achievable by the representative aspects of the invention disclosed in the present application.
- That is, a technology can be provided which allows, when a plurality of bus masters are connected to a common bus, easy handling of a change in the address range of the subject of access or any of the bus masters.
-
FIG. 1 is a block diagram of an exemplary entire structure of a microcomputer as an example of a semiconductor integrated circuit according to the present invention; -
FIG. 2 is a flow chart showing a main operation in the foregoing microcomputer; -
FIG. 3 is a view illustrating examples of the encoding of an opcode signal and a response_opcode signal in the foregoing microcomputer; -
FIG. 4 is an operational timing chart when address monitoring means judges a normality in an 8-byte load in the foregoing microcomputer; -
FIG. 5 is an operational timing chart when the address monitoring means judges an error in the 8-byte load in the foregoing microcomputer; -
FIG. 6 is an operational timing chart when the address monitoring means judges a normality in an 8-byte store in the foregoing microcomputer; and -
FIG. 7 is an operational timing chart when the address monitoring means judges an error in the 8-byte store in the foregoing microcomputer. - An embodiment which adds address monitoring means to the router of a bus system is the best mode for carrying out the present invention. A router is means for viewing a destination address to which a packet that has been passed to the bus is to be transferred and sending the packet to a target hardware item which is uniquely determined by the address. In general, a packet is composed of the destination address, data to be transferred, and other control signals. In addition, the present embodiment allows an ID number to be set to the packet. Since the packet flowing on the bus inevitably passes through the router, the router is an optimum functional unit to which the address monitoring unit according to the present invention is to be added.
- An access right table held by the address monitoring unit has bits commensurate with all ID numbers in each address range and each of the bits corresponds to any of the ID numbers. In each of the bits, whether or not the possessor of the ID number corresponding to the bit has an access right to the address range is stored as a value of 0 or 1. There are two methods of access to the access right table. The access right table has been address-mapped and is readable/writable by using a software item. It is also possible to select a row in the access right table based on the address range, select a column in the access right table based on the ID number, and read the bit at the intersection of the selected row and the selected column.
- In addition to the destination address, the data to be transferred, and the other control codes, the ID number can also be set to the packet allowed to flow on the bus by each of the bus masters in the present embodiment. To physical components which allow such a packet to flow, an ID number signal line is added to an address signal line, a data signal line, and other control signal lines. Another method can also be considered which allows the ID number to flow on the control signal lines without adding the ID number signal line.
- Each of the bus masters has one ID register for storing therein the ID number. The ID register has been address-mapped and is rewritable by using a software item. The ID number is preset to the ID register by using the software item before the bus master performs an inherently objective operation.
- When a packet is allowed to flow on the bus by the bus master, the packet passes through the router and through the address monitoring unit in the router. The address monitoring unit acquires the destination address and ID number of the packet. The address monitoring unit judges the address range in the table in which the address is included and views the value of the bit corresponding to the ID number. The address monitoring unti judges an error or a normality based on whether the value of the bit is 0 or 1. A specific description will be given herein below to the embodiment of the present invention.
-
FIG. 1 shows a microcomputer as an example of a semiconductor integrated circuit according to the present invention. The microcomputer is formed on a single semiconductor substrate such as a monocrystalline silicon substrate by using a well-known semiconductor manufacturing technology, though there is no particular limit thereto. As the ID number to be set to the ID register of each of the bus masters, the present embodiment uses a virtual address space identification number managed by an operating system. - A
microcomputer 100 includes: aCPU core 101; arouter 103; an external I/F (external interface) 104; a DMAC (Direct Memory Access Controller) 105; and a 3DGC (3-Dimension Graphics Controller) 106, though there is no particular limit thereto. Amemory 107 is assumed to be a DRAM (Dynamic Random Access Memory) disposed outside themicrocomputer 100, though there is no particular limit thereto. TheCPU core 100, therouter 103, the external I/F 104, theDMAC 105, the3DGC 106 are coupled to each other to be capable of transmitting a signal therebetween by using an internal bus 102. Thememory 107 is connected to the external I/F 104 via amemory bus 108. The external I/F 104 is capable of connecting not only thememory 107 but also a plurality of memories or another semiconductor integrated circuit to the outside. - The
CPU core 101 has the function of performing a specified arithmetic process in accordance with a predetermined program and is comprised of an MMU (Memory Management Unit) 110 and an ID (IDentification)register 120, though there is no particular limit thereto. TheMMU 110 includes a TLB (Translation Lookaside Buffer) 111 and a PTE. ASID (Page Table Entry resister's Address Space Identification part) 112. TheTLB 111 is composed of 64 rows and columns indicative of the components of the individual rows. The individual rows of theTLB 111 are termed entries, of which the 0-th and 1st entries are denoted by 117 and 118, respectively. Although the final one of the subsequent entries is the 63rd entry, the depiction thereof is omitted inFIG. 1 . Each of the columns of theTLB 111 is composed of a Valid 113, an ASID (Address Space IDentification) 114, a VPN (Virtual Page Number) 115, a PPN (Physical Page Number) 116, and other bits. Since the other bits are not important, the description thereof will be omitted. - The component of the Valid 113 is one bit. The entry in which the value of the bit composing the Valid 113 is 1 is in use and has a valid content, while the entry in which the value of the bit composing the Valid 113 is 0 is out of use and has an invalid content. The component of the
ASID 114 is an address space identification number, which is assumed herein to be an 8-bit integral value with no sign. An ASID number is a number for identifying a virtual address space which is provided for each process on a one-by-one basis and is generally termed a process ID number or the like. The virtual address space is divided into pages (Pages) each of a prescribed size. The size is indicated by a power-of-2 number and is selected among the sizes of 1 Mbytes, 64 Mbits, and the like. The component of theVPN 115 indicates the ordinal position of the page when the virtual address space starting at the 0-th address has been divided into the pages of the size and stores a page number in use or having a high possibility of being used in the virtual address space indicated by the ASID number. A physical address space is divided into the same size into which the virtual address space has been divided. The component of thePPN 116 indicates the ordinal position of the page when the physical address space starting at the 0-th address has been divided into the pages of the size. Summarizing the foregoing, a description will given to theentry 117. Since the Valid bit has a logic value “1”, theentry 117 has a valid value and associates the x-th page in the virtual address space of which the ASID number is 01 with the m-th page in the physical address space. The presence of theentry 117 causes theMMU 110 to convert, when a process having the virtual address space identification number (ASID number) of 01 accesses the p-th word on the x-th page in the virtual address space, the access in the virtual address space to access to the p-th word on the m-th page in the physical address space. Since the Valid bit in theentry 118 is 1, the entry has a valid value and associates the y-th page in the virtual address space of which the ASID number is FE with the n-th page in the physical address space. The presence of theentry 118 causes theMMU 110 to convert, when a process having the virtual address space identification number of FE accesses the q-th word on the y-th page in the virtual address space, the access in the virtual address space to access to the q-th word on the n-th page in the physical address space. - The PTE.
ASID 112 stores therein the identification number of the virtual address space for which the arithmetic process is currently being executed by theCPU core 101. The PTE. ASID represents an ASID region in the PTE register and is composed of one or more bits. - The
ID register 120 has the same value as the PTE.ASID 112. TheCPU core 101 is a bus master and outputs the value in theID register 120 to ID signals 134 on outputting a packet to the bus. - The internal bus 102 is a mechanism which transfers the packet outputted from the bus master to the internal bus. The packet is comprised of a control instruction, the destination address, the data to be transferred, and the ID number, though there is no particular limit thereto. These are transmitted by the internal bus 102 as control signals 131, address signals 132, data signals 133, and ID signals 134, in synchronization with a
bus clock 130. These signals are connected to theCPU core 101, therouter 103, the external I/F 104, theDMAC 105, and the3DGC 106. To theCPU core 101, therouter 103, the external I/F 104, theDMAC 105, and the3DGC 106, respective specific address ranges have been allocated preliminarily. Therouter 103 has the function of transferring the packet to the destination address thereof. - The external I/
F 104 receives the packet comprised of the control signals 131, the address signals 132, and the data signals 133, converts the received packet to a signal corresponding to the type of the memory connected externally to the microcomputer, such as an SRAM or a DRAM, outputs the signal resulting from the conversion to theexternal bus 108, and performs a read or write operation with respect to a specified address in thememory 107. The external I/F 104 is a bus slave. Although the bus slave is capable of receiving the packet initiated by a bus master, there is no such case where the packet is initiated by the bus slave so that the bus slave only outputs a response packet to the received packet to the bus. The possessor of the response packet is the bus master. The bus slave need not store an ID number and has no ID register. - The
DMAC 105 has the function (direct memory access control function) of controlling data transfer performed between itself and thememory 107 without interposition of theCPU core 101 and is comprised of acontrol register 140, ansource address register 141, adestination address register 142, a transfer number-of-bytes register 143, and theID register 121, though there is no particular limit thereto. Addresses are allocated to thesource address register 141, thedestination address register 142, the transfer number-of-bytes register 143, and theID register 121 and data can be read or written by specifying an address from the program being executed by the CPU core. A start flag for thecontrol register 140 is set to 1 in the state in which data has preliminarily been written in thesource address register 141,destination address register 142, and transfer number-of-bytes register 143 of theDMAC 105 by using a program and a transfer method and the like have preliminarily been specified to thecontrol register 140. As a result, the content of the memory is transferred by the transfer number of bytes from the source address to the destination address. To theID register 121, theCPU core 101 sets the same ID number as the virtual address space identification number of the process which controls theDMAC 105 by using a program such as a driver. TheDMAC 105 is a bus master and outputs the value in theID register 121 to the ID signals 134 on outputting a packet to the bus. - The
3DGC 106 has the function of controlling a three dimensional graphic process and is comprised of acontrol register 150, aframe address register 151, and anID register 122, though there is no particular limit thereto. Addresses are allocated to thecontrol register 150, theframe address register 151, and theID register 122 and data can be read or written by specifying an address from the program being executed by the CPU core. The3DGC 106 receives a control instruction and a parameter at thecontrol register 150 and is capable of performing a data read or write operation with respect to a specified location in a memory region shown in theframe address register 151. To theID register 122, theCPU core 101 sets the same ID number as the virtual address space identification number of the process which controls the3DGC 106 by using a program such as a driver. The3DGC 106 is a bus master and outputs the value in theID register 122 to the ID signals 134 on outputting a packet to the bus. - The
router 103 has a routing function for transferring the packet that can be transferred via the internal bus 102 to a target hardware item uniquely determined by the destination address of the packet. Therouter 103 is provided withaddress monitoring unit 160. Theaddress monitoring unit 160 has an access right monitoring function based on the inputted address signal and is comprised of anaddress register 161, anID register 162, anaddress decoder 163, anID decoder 164, a detectingcircuit 165, anerror judging circuit 166, and an access right table 170, though there is no particular limit thereto. Addresses have been allocated to the access right table 170 and data can be read or written by specifying any of the addresses from the program executed by theCPU core 101. When therouter 103 receives a packet, theaddress monitoring unit 160 stores the address signal of the packet in theaddress register 161 and stores the ID signal of the packet in theID register 162. Then, the value in theaddress register 161 is decoded in theaddress decoder 163 and one of the rows in the access right table 170 is selected by an output of theaddress decoder 163. In parallel to this, the value in theID register 162 is decoded by theID decoder 164 and one of the columns in the access right table 170 is selected by an output of theID decoder 164. The detectingcircuit 165 detects the value of the bit at the intersection of the selected row and the selected column in the access right table 170 and inputs the detected value to theerror judging circuit 166. Theerror judging circuit 166 allows the router to continue a normal process without outputting an error when the logic value “1” is inputted, while outputting the error signal to the control signals 131 on the internal bus 102 when the logic value “0” is inputted. Here, theaddress monitoring unit 160 described above corresponds to the address monitor unit according to the present invention. -
FIG. 2 shows a main operation in themicrocomputer 100 described above. InFIG. 2 , each of the procedures following the triangular marks is assumed to be the operation of a hardware item and the procedures following the circular marks are assumed to be settings made by using a software item. - In a
system reset 201, themicrocomputer 100 is brought into an initial state when themicrocomputer 100 is first energized or when themicrocomputer 100 receives a reset request signal. - A
process 202 is initialization using a hardware item after the system reset 201. The first procedure of theprocess 202 is the initialization of the access right table 170 of theaddress monitoring unit 160 of the router 102. In the present embodiment, each of the bits in the access right table 170 is set to the logic value “1” such that the same operation as in the case where theaddress monitoring unit 160 is not provided, similarly to the case with the conventional microcomputer, is performed. In this case, settings are made to enable access using any ID number to any address. The initial value in the access right table 170 may be changed appropriately depending on the system. It will easily be appreciated that a system reset procedure is performed in addition to the first procedure of theprocess 202. - A
process 203 is initialization using a software item. - In the first procedure of the
process 203, the virtual address space identification number of an OS including an exceptional process handler is set to 00. Although the present embodiment uses the value of the current virtual address space identification number stored in the PTE.ASID 112 by copying it to theID register 120 of theCPU core 101, it is also possible to allocate an OS-dedicated special value as the virtual address space identification number with the view to distinguishing the OS from a normal process. - In the second procedure of the
process 203, the hardware item copies the value in the PTE.ASID 112 therefrom to theID register 120 of theCPU core 101. - In the procedure A of the third procedure of the
process 203, the initialization is performed to enable the OS to access all the addresses. In the procedure B of the third procedure of theprocess 203, the initialization is performed to disable a user process with any of ungenerated virtual address space identification numbers including −1(0×FF) from accessing any of the addresses. - In the fourth procedure of the
process 203, −1(0×FF) is set as the virtual address space identification number to the ID register of each of the bus masters except for theCPU core 101. It is assumed that the virtual address space identification number −1(0×FF) is a special number which is not used as the virtual address space identification number. The present embodiment sets −1(0×FF) to theID register 121 of theDMAC 105 and sets −1(0×FF) to theID register 122 of the3DGC 106. - In the fifth procedure of the
process 203, a semaphore acquired when a read or write operation is performed exclusively to the access right table 170 by using a software item is generated. The semaphore used herein is a mechanism for providing synchronization in a multi-task OS in which a plurality of processes are simultaneously executed and defined as a type of flag which manages the occupied state of a resource. - In the sixth procedure of the
process 203, a semaphore acquired when a read or write operation is performed exclusively to the ID register of any of the bus masters other than theCPU core 101 by using a software item is generated. - When the
process 203 is ended, the initialization of the OS is completed and the OS comes into a steady state (a normal state). The steady state is basically an infinite loop which performs a specified process in response to the occurrence of an event or a request. - In a
judgment 210, aprocess 220 is executed when a request to generate a new process occurs. - In the first procedure of the
process 220, an unused ID number is generated and designated as the virtual address space identification number of the new process. - In a
judgment 211, when a request to switch the virtual address space to a given process occurs, aprocess 221 is executed. - In the first procedure of the
process 221, the ID number of the given process is set to the PTE.ASID 112 so that the virtual address space is switched to the given process. In the second procedure of theprocess 221, the value in the PTE.ASID 112 is copied therefrom to theID register 120 by using a hardware item. - When a request to switch the virtual address space to the OS occurs in the
judgment 212, aprocess 222 is executed. - In the first procedure of the
process ASID 112 so that the virtual address space is switched to the OS. In the second procedure of theprocess 222, the value in the PTE.ASID 112 is copied therefrom to theID register 120 by using a hardware item. - In a
judgment 213, when an event which reserves a physical memory block (a page of the physical address space) occurs, aprocess 223 is executed in addition to a procedure for actually reserving the physical memory. The event which reserves the physical memory block occurs in such cases: (1) where the OS preliminarily allocates the page of the physical address space to the page of the virtual address space to prevent the occurrence of a page fault on switching the address space; (2) where the page fault occurs and the page of the physical address space is allocated to the page of the virtual address space in which the page fault has occurred; and (3) where a system call for acquiring a physical address block is made. In each of the cases (1) and (2), the ID number of the virtual address space with the page fault is used. In the case (3), the ID number of the virtual address space which has made the system call is used. - In the first procedure of the
process 223, a semaphore for the access right table 170 is acquired. This semaphore has been generated in the fifth procedure of theprocess 203. In the second procedure of theprocess process 223, the semaphore for the access right table 170 is released. - In a
judgment 214, when an event which reserves any of the bus masters other than theCPU core 101 occurs, aprocess 224 is executed. - In the first procedure of the
process 224, a semaphore for the bus master is acquired. It is to be noted that this semaphore has been generated in the sixth procedure of theprocess 203. In the second procedure of theprocess 224, the virtual address space identification number which uses the bus master is set to the ID register of the bus master. In the procedure, the bus master has the same access right as the virtual address space. For example, theDMAC 105 which is one of the bus masters has the determined number of resources so that they are managed by using the semaphore and a driver program for acquiring theDMAC 105 is produced. This driver program acquires a semaphore for theDMAC 105, while setting the virtual address space identification number of a process as the subject of the reservation of the DMAC to theID register 121 of theDMAC 105. The same shall apply to the3DGC 106. - In a
judgment 215, when an event in which the bus master accesses the “xxxxxxxx address” occurs, aprocess 225 is executed by a hardware item. - In the first procedure of the
process 225, the xxxxxxxx address is outputted to the address signals 132 and the value in the ID register of the bus master is outputted to the ID signals 134. At the same time, the control signals are transmitted via the control signals 131 and, if necessary, data is outputted to the data signals 133. In the second procedure of theprocess 225, therouter 103 stores the address in theaddress register 161 and stores the value of the ID signals in theID register 162. In the third procedure of theprocess 225, the value in theaddress register 161 is decoded in theaddress decoder 163 and the corresponding one of the rows in the access right table 170 is selected, while the value in theID register 162 is decoded simultaneously in theID decoder 164 and the corresponding one of the columns in the access right table 170 is selected. In the fourth procedure of theprocess 225, the value of the bit at the intersection of the selected row and the selected column is extracted in the detectingcircuit 165 and outputted to theerror judging circuit 166. If the value is 1, the normal operation is continued. If the value is 0, the error signal is outputted to the control signals 131. - In a
judgment 216, when a request to extinguish the existing process occurs, aprocess 226 is executed. - In the first procedure of the
process 226, a semaphore for the access right table 170 of theaddress monitoring unit 160 of therouter 103 is acquired. In the second procedure of theprocess 226, each of the bits in the column corresponding to the ID number of the process in the access right table 170 is set to 0, whereby access using the ID number is disabled. In the third procedure of theprocess 226, the semaphore is released. - In a
judgment 217, when an event which releases any of the bus masters other than theCPU core 101 occurs, aprocess 227 is executed. - In the first procedure of the
process 227, −1(0×FF) is set to the ID register of the bus master. In the second procedure of theprocess 227, the semaphore that has been acquired in theprocess 224 is released and, if there is a release procedure specific to the bus master, it is executed. - In a
judgment 218, when a shut-down request to the OS occurs, the process flow shifts to a terminal 230. If there is no shut-down request, the process flow returns to thejudgment 210 and repeats the same process as described above. - As shown in the
entry 117 in theTLB 111, the x-th logic page of the process with the virtual address space identification number (ASID) 01 has been allocated to the m-th physical page in thememory 107 through the initial allocation of the physical page to the logic page of the process or by a page fault recovery process. At the same time, by setting 1 to the 01-th column in the m-th row in the access right table 170, access using the same ID number as the virtual address space identification number (ASID) 01 to the m-th physical page in thememory 107 has been enabled. - Likewise, as shown in the
entry 118 in theTLB 111, the y-th logic page of the process with the virtual address space identification number (ASID) FE has been allocated to the n-th physical page in thememory 107 through the initial allocation of the physical page to the logic page of the process or by the page fault recovery process. At the same time, by setting 1 to the FE-th column in the n-th row in the access right table 170, access using the same ID number as the virtual address space identification number (ASID) FE to the n-th physical page in thememory 107 has been enabled. - Although the k-th page in the
memory 107 has no particular description of the entries in theTLB 111, the k-th row in the access right table 170 has set 1 to each of the 01-th column and the FE-th column in the access right table 170 since the process with the virtual address space identification number (ASID) 01 has acquired an access right through a system call and the process with the virtual address space identification number (ASID) FE has also acquired an access right through a system call. As a result, access to the k-th physical page in thememory 107 using either of the virtual address space identification umber (ASID) 01 and the virtual address space identification umber (ASID) FE has been enabled. - The 00-th column in the access right table 170 shows the access right of the OS with the ID number of 0 so that 1 has been set to each of the bits corresponding to all the address ranges in which the resources validly exist.
- The FF-th column in the access right table 170 shows the access right of the bus master with the ID number of −1, i.e., FF. The bus master having −1(FF) as the ID number does not have an access right to any of the resources.
- In the state of the access right table 170 shown in
FIG. 1 , when the virtual address space identification number of the current process (present process) in theCPU core 101 is 01, the m-th page and the k-th page in thememory 107 are accessible. When the virtual address space identification number of the current process in theCPU core 101 is FE, the n-page and the k-page in thememory 107 are accessible. When the virtual address space identification number of the current process in theCPU core 101 is j, none of the m-th page, the n-th page, and the k-page in thememory 107 is accessible. When the virtual address space identification number of the current process in theCPU core 101 is 00, all the existing resources are accessible. When the virtual address space identification number of the current process in theCPU core 101 is FF, all the resources are inaccessible. - In the state of the access right table 170 shown in
FIG. 1 , when the value in theID register 121 of theDMAC 105 is 01, the m-page and the k-th page in thememory 107 are accessible. When the value in theID register 121 of theDMAC 105 is FE, the n-page and the k-th page in thememory 107 are accessible. When the value in theID register 121 of theDMAC 105 is j, none of the m-th page, the n-th page, and the k-th page in thememory 107 is accessible. When the value in theID register 121 of theDMAC 105 is 00, all the exiting resources are accessible. When the value in theID register 121 of theDMAC 105 is FF, all the exiting resources are inaccessible. - In the state of the access right table 170 shown in
FIG. 1 , when the value in theID register 122 of the3DGC 106 is 01, the m-page and the k-th page in thememory 107 are accessible. When the value in theID register 122 of the3DGC 106 is FE, the n-page and the k-th page in thememory 107 are accessible. When the value in theID register 122 of the3DGC 106 is j, none of the m-th page, the n-th page, and the k-th page in thememory 107 is accessible. When the value in theID register 122 of the3DGC 106 is 00, all the exiting resources are accessible. When the value in theID register 122 of the3DGC 106 is FF, all the exiting resources are inaccessible. - As described above, not only the access right of the
CPU core 101 but also the access right of each of the bus masters such as theDMAC 105 and the3DGC 106 can be controlled by using the access monitoring unit. -
FIG. 4 shows a normal case in an 8-byte load.FIG. 5 shows an error case in the 8-byte load.FIG. 6 shows a normal case in an 8-byte store.FIG. 7 shows an error case in the 8-byte store. - The internal bus 102 performs transfer in synchronization with the
bus clock 130. Data transferred in one clock cycle is termed a cell. A packet is composed of one or more cells. On the internal bus 102, a circuit requesting transfer is termed a bus master, while a circuit responding to the transfer is termed a bus slave. A transaction on the internal bus is initiated by the transmission of a request packet containing the content of a request from the bus master to the bus slave. The transaction is completed by the transmission of a response packet containing the content of a response from the bus slave to the bus master. A circuit positioned between the bus master and the bus slave to relay the packets is therouter 103. Therouter 103 transfers the request packet received from one bus master to a specified bus slave. Therouter 103 also transmits the response packet received from one bus slave to the bus master that has initiated the transaction. - A clock signal corresponds to the
bus clock 130 and the logic values “0” and “1” are alternately repeated with a given cycle period. In synchronization with the rising edge of this clock signal, the other signals, which will be described later, are fetched by the bus master, the router, and the bus slave. - One transaction from a given bus master to a given bus slave is completed by: (1) the transmission of a request packet from the bus master to the
router 103; (2) the transmission of the request packet from therouter 103 to the bus slave; (3) the transmission of a response packet from the bus slave to therouter 103; and (4) the transmission of the response packet from therouter 103 to the bus slave, which are performed in this order. If an error is detected in theerror judging circuit 166, however, only the transmissions (1) and (4) are executed. A detailed description will be given herein below to the transmissions (1) to (4) mentioned above. - In the foregoing transmission (1) from the bus master to the
router 103, there are used: a request signal (1 a); a grant signal (1 b); an end_of_packet signal (1 c); an address signal (1 d); an opcode signal (1 e); a data signal (1 f); a source signal (1 g); and an ID signal (1 h). Among them, the request signal (1 a) indicates that, of the signals used by the bus master to transfer the request packet, the address signal (1 d), the opcode signal (1 e), the data signal (1 f), the source signal (1 g), and the ID signal (1 h) are outputting valid values, while the grant signal (1 b) indicates to the bus master that therouter 103 can receive the request packet. On the rising edge of the clock signal, when each of the request signal (1 a) and the grant signal (1 b) has the logic value “1”, the cell or cells of the request packet are transferred from the bus master (M) to the router 103 (R). When the request signal (1 a) has the logic value “0”, the cell or cells are not transferred (which is ignored by the router 103). The end_of_packet signal (1 c) indicates that the bus master is outputting the final cell of the request packet. The address signal (1 d) indicates the destination address of the transaction. The opcode signal (1 e) indicates the type and transfer size of the transaction. An example of the encoding of the opcode signal (1 e) is shown in the opcode column inFIG. 3 . The data signal (1 f) represents data transferred from the bus master to therouter 103. The source signal (1 g) is an identifier outputted from the bus master to specify, when therouter 103 relays the response packet, the destination of the response packet. The ID signal (1 h) is an ID number transferred from the bus master to therouter 103. - In the foregoing transmission (2) from the router 103 (R) to the bus slave (S), there are used: a request signal (2 a); a grant signal (2 b); an end_of_packet signal (2 c); an address signal (2 d); an opcode signal (2 e); a data signal (2 f); and a source signal (2 g). Among them, the request signal (2 a) indicates that, of the signals used for the transfer of the request packet from the
router 103 to the bus slave, the end_of_packet signal (2 c), the address signal (2 d), the opcode signal (2 e), the data signal (2 f), and the source signal (2 g) are outputting valid values. The grant signal (2 b) indicates that the bus slave can receive the request packet. On the rising edge of the clock signal, when each of the request signal (2 a) and the grant signal (2 b) has the logic value “1”, the cell or cells of the request packet are transferred from therouter 103 to the bus slave. When the request signal (2 a) has the logic value “0”, the cell or cells are not transferred. The end_of_packet signal (2 c) indicates that therouter 103 is outputting the final cell. The address signal (2 d) indicates the destination address of the transaction. The opcode signal (2 e) indicates the type and transfer size of the transaction. An example of the encoding of the opcode signal (2 e) is shown in the opcode column inFIG. 3 . The data signal (2 f) represents data transferred from therouter 103 to the bus master. The source signal (2 g) is an identifier outputted from the bus master to specify, when therouter 103 relays the response packet, the destination of the response packet. - In the foregoing transmission (3) from the bus slave to the
router 103, there are used: a response_request signal (3 a); a response_grant signal (3 b); a response_end_of_packet signal (3 c); a response_opcode signal (3 d); a response_data signal (3 e); and a response_source signal (3 f). Among them, the response_request signal (3 a) indicates that, of the signals used by the bus slave to transfer the response packet, the response_opcode signal (3 d), the response_data signal (3 e), and the response_source signals (3 f) are outputting valid values. On the rising edge of the clock signal, when each of the response_request signal (3 a) and the response_grant signal (3 b) has the logic value “1”, the cell or cells of the response packet are transferred from the bus slave to therouter 103. When the response_request signal (3 a) has the logic value “0”, the cell or cells are not transferred (which is ignored by the router 103). The response_grant signal (3 b) indicates that therouter 103 can receive the response packet. On the rising edge of the clock signal, when each of the response_request signal (3 a) and the response_grant signal (3 b) has the logic value “1”, the cell or cells of the response packet are transferred from the bus slave to therouter 103. When the response_grant signal (3 b) has the logic value “0”, the cell or cells are not transferred. The response_end_of_packet signal (3 c) indicates that the bus slave is outputting the final cell of the response packet. The response_end_of_packet signal (3 c) is valid when the logic value thereof is “1” and is invalid when the logic value thereof is “0”. The response_end_of_packet signal (3 c) falls to the logic value “0” when the logic value of the response_request signal (3 a) is “0”. The response_opcode signal (3 d) indicates the result of the transaction. An example of the encoding of the response_opcode signal (3 d) is shown in the response_opcode column inFIG. 3 . The response_data signal (3 e) represents data transferred from the bus slave to therouter 103. The response_source signal (3 f) is an identifier for allowing the specification of the target bus master of the response packet when therouter 103 routes the response packet. Upon receipt of the request packet, the bus slave stores the value of the source signal (2 g) and outputs the stored value as the response_source signal (3 f) on transmitting the corresponding response packet. - In the foregoing transmission (4) from the
router 103 to the bus master, there are used: a response_valid signal (4 a); a response_end_of_packet signal (4 b); a response_opcode signal (4 c); a response_data signal (4 d); and a response_source signal (4 e). Among them, the response_valid signal (4 a) indicates that the response_end_of_packet signal (4 b), the response_opcode signal (4 c), the response_data signal (4 d), and the response_source signal (4 e), which are used for the transfer of the response packet from therouter 103 to the bus master, are outputting valid values. On the rising edge of the clock signal, when the response_valid signal (4 a) has the logic value “1”, the cell or cells of the response packet are transferred from therouter 103 to the bus master (M). The response_end_of_packet signal (4 b) indicates that therouter 103 is outputting the final cell of the response packet. The response_end_of_packet signal (4 b) is valid when the logic value thereof is “1” and is invalid when the logic value thereof is “0”. The response_opcode signal (4 c) indicates the result of the transaction. An example of the encoding of the response_opcode signal (4 c) is shown in the response_opcode column inFIG. 3 . When an error occurs in theerror judging circuit 166 of theaddress monitoring unit 160, in particular, the code of the error is set. The response_data signal (4 e) represents data transferred from therouter 103 to the bus master. The response_source signal (4 e) has the same value as the source signal (1 g) outputted from the bus master upon the transmission of the corresponding request packet. - In
FIG. 1 , the internal bus 102 is composed of: the control signals 131; the address signals 132; the data signals 133; and the ID signals 134. The control signals 131 is designated herein as a generic name for the following group of signals. Specifically, the control signals 131 is designated as the generic name for: the request signal (1 a); the grant signal (1 b); the end_of_packet signal (1 c); the opcode signal (1 e); the source signal (1 g); the request signal (2 a); the grant signal (2 b); the end_of_packet signal (2 c); the opcode signal (2 e); the source signal (2 g); the response_request signal (3 a); the response_grant signal (3 b); the response_end_of_packet signal (3 c); the response_opcode signal (3 d); the response_source signal (3 f); the response_valid signal (4 a); the response_end_of_packet signal (4 b); the response_opcode signal (4 c); and the response_source signal (4 e). - The address signals 132 are a generic name for the address signals (1 d) and the address signals (2 d).
- The data signals 133 are a generic name for the data signals (1 f), the data signals (2 f), the response_data signals (3 e), and the response_data signals (4 d).
- The ID signals 134 correspond to the ID signal (1 h).
- The foregoing embodiment can achieve the following operation and effect.
- (1) Since the access right table 170 is shared among a plurality of bus masters such as the
CPU core 101, theDMAC 105, and the3DGC 106, when the address range of the subject of access or any of the bus masters is changed, the access right table 170 may be rewritten appropriately under the control of theCPU core 101. In other words, since the function of access right judgment has not been distributed to the individual bus masters, a change in the address range of the subject of access or any of the bus masters can easily be handled only by rewriting the access right table 170 shared among the plurality of bus masters mentioned above. - (2) The
router 103 inherently has the function of transferring a packet to the destination address thereof and, by providing therouter 103 having such a function with theaddress monitoring unit 160, it becomes possible to use common parts to compose different registers and the like. Accordingly, the number of elements can be reduced compared with the case where theaddress monitoring unit 160 is formed distinctly from therouter 103. - Although the invention achieved by the present inventors has been described specifically, the present invention is not limited thereto. It will easily be appreciated that various changes and modifications can be made in the invention without departing from the gist thereof.
- For example, although the foregoing embodiment has provided the
ID register 120 distinctly from the PTE.ASID 112 and copied the value in the PTE.ASID 112 therefrom to theID register 120 by using a hardware item, another embodiment can be implemented by modifying the foregoing embodiment such that the PTE.ASID 112 and theID register 120 are formed as one hardware resource. - Instead of automatically copying the value from the PTE.
ASID 112 to theID register 120 by using the hardware item, the ID number may also be written in theID register 120 using a software item or a hardware item by referencing the value in the PTE.ASID 112. In this case, as the ID number to be set to theID register 120, an ID number with a granularity different from that of the virtual address space identification number can be set. On the other hand, the ID numbers with the same granularity are used in theID register 120 of theCPU core 101, in theID register 121 of theDMAC 105, in theID register 122 of the3DGC 106, and in the columns of the access right table 170 of therouter 103. - Although the foregoing description has been given primarily to the case where the invention achieved by the present inventors is applied to the microcomputer which is an application field serving as the background of the invention, the present invention is not limited thereto. The present invention can be applied widely to various semiconductor integrated circuits.
- The present invention can be applied under the condition that a bus is contained therein.
Claims (12)
1-7. (canceled)
8. A bus system comprising:
an internal bus coupled to a plurality of bus masters; and
an address access controlling unit coupled to said internal bus, including:
an access table shared with said plurality of bus masters and storing access right information;
a first decoder operable to decode bus master information received from said internal bus;
a second decoder operable to decode address information inputted from said internal bus; and
an access right controlling module judging an access right of a said bus master by reference to the access table based on the output of said first and second decoders and, and outputting the result of judging to said internal bus,
wherein the address access controlling unit is operable to determine, by referencing said address table, an access right for each bus master based on said bus master information and address information outputted from said bus master, and
wherein said address access controlling unit controls routing for transferring a packet data transferred via said internal bus to a destination address of said packet.
9. A bus system according to claim 8 , wherein each of said plurality of bus masters includes an ID register storing said bus master information which is outputtable to said internal bus as required.
10. A bus system according to claim 9 , wherein said internal bus includes an address bus, a data bus, a control bus and an ID number bus, and
wherein said address access controlling unit couples to said address bus for inputting said address information and said ID number bus for inputting said bus master information.
11. A semiconductor integrated circuit formed over a single semiconductor substrate and including a bus system which comprises:
an internal bus coupled to a plurality of bus masters; and
an address controlling module including:
an address table used for said bus masters, storing access right information;
a first decode unit operable to decode a bus master information received from said internal bus;
a second decode unit operable to decode address information inputted from said internal bus; and
an access judgment module detecting access right information of said address table specified by an output of said first decode unit and an output of said second decode unit and outputting judgment information of the access right to said internal bus,
wherein the address controlling module is operable to judge an access right for each bus master based on said bus master information and address information outputted from said bus master by referencing said table, and
wherein said address controlling module is operable to route for transferring a packet which can be transferred via said bus to a destination address of said packet.
12. A semiconductor integrated circuit according to claim 11 ,
wherein said plurality of bus masters include a central processing unit, and
wherein said address table is rewritable by said central processing unit.
13. A semiconductor integrated circuit according to claim 12 , wherein the bus master information is a process ID used by said central processing unit for memory management.
14. A semiconductor integrated circuit according to claim 13 ,
wherein said address table includes an access right information of an external memory unit, and
wherein said external memory unit is accessed by an input/output unit coupled to said internal bus.
15. A semiconductor integrated circuit including a bus system which comprises:
an internal bus coupled to a plurality of bus masters; and
an address controlling unit including:
an access table shared with said plurality of bus masters and storing access right information;
wherein the address controlling unit is operable to control a bus access by referencing said address table,
wherein said address controlling unit inputs bus master information and address information from a bus master, references said access table by using said bus master information and said address information, and determines an access right of said bus master, and
wherein the subject-of-access information contained in said central processing unit is a process ID used by said central processing unit for memory management.
16. A semiconductor integrated circuit including a bus system according to claim 15 , wherein said address controlling unit has a routing function for transferring a packet data to a module based on said address information via said internal bus.
17. A semiconductor integrated circuit according to claim 15 ,
wherein said plurality of bus masters include a central processing unit, and said access table in said address controlling unit is rewritable by said central processing unit.
18. A semiconductor integrated circuit according to claim 15 ,
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/780,031 US20070255872A1 (en) | 2004-09-21 | 2007-07-19 | Bus system and semiconductor integrated circuit |
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004273226A JP4587756B2 (en) | 2004-09-21 | 2004-09-21 | Semiconductor integrated circuit device |
JP2004-273226 | 2004-09-21 | ||
US11/213,795 US7263565B2 (en) | 2004-09-21 | 2005-08-30 | Bus system and integrated circuit having an address monitor unit |
US11/780,031 US20070255872A1 (en) | 2004-09-21 | 2007-07-19 | Bus system and semiconductor integrated circuit |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US11/213,795 Continuation US7263565B2 (en) | 2004-09-21 | 2005-08-30 | Bus system and integrated circuit having an address monitor unit |
Publications (1)
Publication Number | Publication Date |
---|---|
US20070255872A1 true US20070255872A1 (en) | 2007-11-01 |
Family
ID=36146726
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US11/213,795 Expired - Fee Related US7263565B2 (en) | 2004-09-21 | 2005-08-30 | Bus system and integrated circuit having an address monitor unit |
US11/780,031 Abandoned US20070255872A1 (en) | 2004-09-21 | 2007-07-19 | Bus system and semiconductor integrated circuit |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US11/213,795 Expired - Fee Related US7263565B2 (en) | 2004-09-21 | 2005-08-30 | Bus system and integrated circuit having an address monitor unit |
Country Status (2)
Country | Link |
---|---|
US (2) | US7263565B2 (en) |
JP (1) | JP4587756B2 (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160004647A1 (en) * | 2013-02-28 | 2016-01-07 | Siemens Aktiengesellschaft | Method and circuit arrangement for accessing slave units in a system on chip in a controlled manner |
US11216390B2 (en) * | 2019-07-25 | 2022-01-04 | Kioxia Corporation | Storage device, memory access control system, and memory access control method |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7769579B2 (en) | 2005-05-31 | 2010-08-03 | Google Inc. | Learning facts from semi-structured text |
US8682913B1 (en) | 2005-03-31 | 2014-03-25 | Google Inc. | Corroborating facts extracted from multiple sources |
US7587387B2 (en) | 2005-03-31 | 2009-09-08 | Google Inc. | User interface for facts query engine with snippets from information sources that include query terms and answer terms |
US9208229B2 (en) * | 2005-03-31 | 2015-12-08 | Google Inc. | Anchor text summarization for corroboration |
US7831545B1 (en) | 2005-05-31 | 2010-11-09 | Google Inc. | Identifying the unifying subject of a set of facts |
US8996470B1 (en) | 2005-05-31 | 2015-03-31 | Google Inc. | System for ensuring the internal consistency of a fact repository |
US7406711B2 (en) * | 2005-09-02 | 2008-07-29 | Motorola, Inc. | Method and apparatus for enforcing independence of processors on a single IC |
US8260785B2 (en) | 2006-02-17 | 2012-09-04 | Google Inc. | Automatic object reference identification and linking in a browseable fact repository |
US20080077749A1 (en) * | 2006-09-22 | 2008-03-27 | Daniel Scott Cohen | Access control of memory space in microprocessor systems |
US8122026B1 (en) | 2006-10-20 | 2012-02-21 | Google Inc. | Finding and disambiguating references to entities on web pages |
US8347202B1 (en) | 2007-03-14 | 2013-01-01 | Google Inc. | Determining geographic locations for place names in a fact repository |
US8812435B1 (en) | 2007-11-16 | 2014-08-19 | Google Inc. | Learning objects and facts from documents |
TWI528248B (en) * | 2008-04-02 | 2016-04-01 | Elan Microelectronics Corp | Capacitive touch device, touch sensing control method and control circuit applied in capacitive touch device |
JP5703505B2 (en) * | 2012-10-15 | 2015-04-22 | 国立大学法人名古屋大学 | Computer with bus partition structure |
JP5981004B2 (en) * | 2015-09-02 | 2016-08-31 | ルネサスエレクトロニクス株式会社 | Semiconductor device |
CN108197503B (en) * | 2017-12-15 | 2020-09-15 | 杭州中天微系统有限公司 | Device for adding protection function to indirect access storage controller |
KR20210085284A (en) * | 2019-12-30 | 2021-07-08 | 삼성전자주식회사 | PIM memory device, computing system including PIM memory device and method for operating PIM memory device |
CN116955265B (en) * | 2023-09-20 | 2023-12-05 | 合肥创发微电子有限公司 | I2C bus system communication method, device, equipment and medium |
Citations (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3247488A (en) * | 1961-03-24 | 1966-04-19 | Sperry Rand Corp | Digital computing system |
US4245306A (en) * | 1978-12-21 | 1981-01-13 | Burroughs Corporation | Selection of addressed processor in a multi-processor network |
US4253114A (en) * | 1976-04-08 | 1981-02-24 | Twin County Trans-Video Inc. | High security subscription television system employing real time control of subscriber's program reception |
US4253146A (en) * | 1978-12-21 | 1981-02-24 | Burroughs Corporation | Module for coupling computer-processors |
US4306219A (en) * | 1980-03-26 | 1981-12-15 | Micro-Magnetic Industries, Inc. | Vending machine acquisition system |
US5784649A (en) * | 1996-03-13 | 1998-07-21 | Diamond Multimedia Systems, Inc. | Multi-threaded FIFO pool buffer and bus transfer control system |
US5907689A (en) * | 1996-12-31 | 1999-05-25 | Compaq Computer Corporation | Master-target based arbitration priority |
US6044225A (en) * | 1996-03-13 | 2000-03-28 | Diamond Multimedia Systems, Inc. | Multiple parallel digital data stream channel controller |
US6052763A (en) * | 1996-12-17 | 2000-04-18 | Ricoh Company, Ltd. | Multiprocessor system memory unit with split bus and method for controlling access to the memory unit |
US6085296A (en) * | 1997-11-12 | 2000-07-04 | Digital Equipment Corporation | Sharing memory pages and page tables among computer processes |
US20020196782A1 (en) * | 2001-06-08 | 2002-12-26 | The Distribution Systems Research Institute | Terminal-to-terminal communication connection control system for IP full service |
US6502167B1 (en) * | 1999-03-17 | 2002-12-31 | Hitachi, Ltd. | Duplicated shared memory controller for disk array |
US20030093625A1 (en) * | 2001-11-15 | 2003-05-15 | International Business Machines Corporation | Sharing memory tables between host channel adapters |
US6665601B1 (en) * | 1998-12-22 | 2003-12-16 | Case Corporation | Communications system for managing messages across a vehicle data bus |
US6851056B2 (en) * | 2002-04-18 | 2005-02-01 | International Business Machines Corporation | Control function employing a requesting master id and a data address to qualify data access within an integrated system |
US20050152378A1 (en) * | 2003-12-12 | 2005-07-14 | Bango Joseph J. | Method of providing guaranteed delivery through the use of the internet for priority e-mail, files and important electronic documents |
US20060002309A1 (en) * | 2004-06-30 | 2006-01-05 | International Business Machines Corporation | Method and apparatus for self-configuring routing devices in a network |
US20060015665A1 (en) * | 2004-06-08 | 2006-01-19 | Daniel Illowsky | Method and system for configuring and using virtual pointers to access one or more independent address spaces |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS62118438A (en) * | 1985-11-19 | 1987-05-29 | Fujitsu Ltd | Cpuid change-over control system |
JPS6371749A (en) * | 1986-09-12 | 1988-04-01 | Fujitsu Ltd | Memory protecting system |
JPH01276230A (en) * | 1988-04-27 | 1989-11-06 | Mitsubishi Electric Corp | System for loading initial microprogram |
JP2962767B2 (en) * | 1990-04-13 | 1999-10-12 | 日本電信電話株式会社 | Memory access method for DMA device |
JPH06236223A (en) * | 1993-02-08 | 1994-08-23 | Toshiba Corp | Device and method for controlling cpu |
JPH06301632A (en) * | 1993-04-19 | 1994-10-28 | Hitachi Ltd | Dma control device and its control method |
JPH08272679A (en) * | 1995-03-30 | 1996-10-18 | Shinko Electric Co Ltd | Industrial computer |
JP2001005726A (en) * | 1999-04-20 | 2001-01-12 | Nec Corp | Memory address space expanding device and storage medium stored with program |
JP2001297054A (en) | 2000-04-11 | 2001-10-26 | Sharp Corp | Method for preventing transfer deviation of dma and dma controller |
JP2003198356A (en) * | 2001-12-25 | 2003-07-11 | Hitachi Ltd | Semiconductor chip and integrated circuit |
JP3704101B2 (en) * | 2002-03-15 | 2005-10-05 | 株式会社リコー | Image processing device |
-
2004
- 2004-09-21 JP JP2004273226A patent/JP4587756B2/en not_active Expired - Fee Related
-
2005
- 2005-08-30 US US11/213,795 patent/US7263565B2/en not_active Expired - Fee Related
-
2007
- 2007-07-19 US US11/780,031 patent/US20070255872A1/en not_active Abandoned
Patent Citations (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3247488A (en) * | 1961-03-24 | 1966-04-19 | Sperry Rand Corp | Digital computing system |
US4253114A (en) * | 1976-04-08 | 1981-02-24 | Twin County Trans-Video Inc. | High security subscription television system employing real time control of subscriber's program reception |
US4245306A (en) * | 1978-12-21 | 1981-01-13 | Burroughs Corporation | Selection of addressed processor in a multi-processor network |
US4253146A (en) * | 1978-12-21 | 1981-02-24 | Burroughs Corporation | Module for coupling computer-processors |
US4306219A (en) * | 1980-03-26 | 1981-12-15 | Micro-Magnetic Industries, Inc. | Vending machine acquisition system |
US6044225A (en) * | 1996-03-13 | 2000-03-28 | Diamond Multimedia Systems, Inc. | Multiple parallel digital data stream channel controller |
US5784649A (en) * | 1996-03-13 | 1998-07-21 | Diamond Multimedia Systems, Inc. | Multi-threaded FIFO pool buffer and bus transfer control system |
US6052763A (en) * | 1996-12-17 | 2000-04-18 | Ricoh Company, Ltd. | Multiprocessor system memory unit with split bus and method for controlling access to the memory unit |
US5907689A (en) * | 1996-12-31 | 1999-05-25 | Compaq Computer Corporation | Master-target based arbitration priority |
US6085296A (en) * | 1997-11-12 | 2000-07-04 | Digital Equipment Corporation | Sharing memory pages and page tables among computer processes |
US6665601B1 (en) * | 1998-12-22 | 2003-12-16 | Case Corporation | Communications system for managing messages across a vehicle data bus |
US6502167B1 (en) * | 1999-03-17 | 2002-12-31 | Hitachi, Ltd. | Duplicated shared memory controller for disk array |
US20020196782A1 (en) * | 2001-06-08 | 2002-12-26 | The Distribution Systems Research Institute | Terminal-to-terminal communication connection control system for IP full service |
US20030093625A1 (en) * | 2001-11-15 | 2003-05-15 | International Business Machines Corporation | Sharing memory tables between host channel adapters |
US6851056B2 (en) * | 2002-04-18 | 2005-02-01 | International Business Machines Corporation | Control function employing a requesting master id and a data address to qualify data access within an integrated system |
US20050152378A1 (en) * | 2003-12-12 | 2005-07-14 | Bango Joseph J. | Method of providing guaranteed delivery through the use of the internet for priority e-mail, files and important electronic documents |
US20060015665A1 (en) * | 2004-06-08 | 2006-01-19 | Daniel Illowsky | Method and system for configuring and using virtual pointers to access one or more independent address spaces |
US20060002309A1 (en) * | 2004-06-30 | 2006-01-05 | International Business Machines Corporation | Method and apparatus for self-configuring routing devices in a network |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160004647A1 (en) * | 2013-02-28 | 2016-01-07 | Siemens Aktiengesellschaft | Method and circuit arrangement for accessing slave units in a system on chip in a controlled manner |
US11216390B2 (en) * | 2019-07-25 | 2022-01-04 | Kioxia Corporation | Storage device, memory access control system, and memory access control method |
Also Published As
Publication number | Publication date |
---|---|
US7263565B2 (en) | 2007-08-28 |
JP2006091972A (en) | 2006-04-06 |
JP4587756B2 (en) | 2010-11-24 |
US20060080485A1 (en) | 2006-04-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7263565B2 (en) | Bus system and integrated circuit having an address monitor unit | |
US7664925B2 (en) | Arrangements having security protection | |
JP3920395B2 (en) | Address translation control circuit and address translation method | |
US7350006B2 (en) | System and method of interrupt handling | |
AU628528B2 (en) | Memory configuration for use with means for interfacing a system control unit for a multi-processor system with the system main memory | |
US5802576A (en) | Speculative cache snoop during DMA line update | |
US5502825A (en) | Data processing system with an enhanced cache memory control | |
JP5360061B2 (en) | Multiprocessor system and control method thereof | |
KR20070122228A (en) | External device access device | |
JPH10143431A (en) | Caching method of data for microprocessor and computer system | |
JP2595277B2 (en) | Memory management device | |
US6119191A (en) | Performing PCI access cycles through PCI bridge hub routing | |
JP2010257134A (en) | Semiconductor data processing device and data processing system | |
US20030200401A1 (en) | Microcomputer system automatically backing-up data written in storage medium in transceiver, and transceiver connected thereto | |
JP3077807B2 (en) | Microcomputer system | |
JPH04270440A (en) | Access system and access processing device | |
JPS58201157A (en) | Control circuit of bank memory | |
JP5380392B2 (en) | Semiconductor device, bus interface device, and computer system | |
JPH1011387A (en) | Information processor | |
JP5324676B2 (en) | Processor, bus interface device, and computer system | |
JPS603049A (en) | Bus interface apparatus | |
JPS62274445A (en) | Privilege protection system in microcomputer system | |
JP2002032352A (en) | Multiprocessor system | |
JPH0467229A (en) | Microprocessor and memory system | |
US20080091889A1 (en) | Memory control apparatus |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |