KR20060040973A - System on chip - Google Patents
System on chip Download PDFInfo
- Publication number
- KR20060040973A KR20060040973A KR1020040090265A KR20040090265A KR20060040973A KR 20060040973 A KR20060040973 A KR 20060040973A KR 1020040090265 A KR1020040090265 A KR 1020040090265A KR 20040090265 A KR20040090265 A KR 20040090265A KR 20060040973 A KR20060040973 A KR 20060040973A
- Authority
- KR
- South Korea
- Prior art keywords
- data
- bus
- address
- read
- system bus
- Prior art date
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/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
-
- 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/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7807—System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
캐시 미스 발생 시 MIPS CPU에서 필요로 하는 데이터를 서브블록 오더링 순서에 의해 제공하는 시스템온칩이 개시된다. 본 발명에 따른 시스템온칩은 캐시 미스 발생 시 버스트 읽기 요청을 시작 어드레스와 함께 출력하는 MIPS CPU와 제1 시스템버스를 통해 접속됨과 아울러, 외부 메모리를 제어하여 버스트 읽기 요청에 따른 데이터를 읽어오는 메모리 컨트롤러, 상기 메모리 컨트롤러와 접속된 제2 시스템버스 및 제1 시스템버스와 제2 시스템버스 사이에 접속되고, 데이터를 시작 어드레스에 대응하는 서브블록 오더링 순서에 의해서 MIPS CPU로 출력하는 브리지회로부를 포함한다. 본 발명에 의하면, 캐시 미스 발생 시 MIPS CPU에서 필요로 하는 데이터를 서브블록 오더링 순서에 의해 제공하는 시스템온칩을 제공할 수 있다는 장점이 있다.Disclosed is a system-on-chip providing data required by a MIPS CPU in a subblock ordering sequence when a cache miss occurs. The system on chip according to the present invention is connected to a MIPS CPU that outputs a burst read request along with a start address when a cache miss occurs, and a memory controller that reads data according to a burst read request by controlling an external memory. And a bridge circuit unit connected between the second system bus connected to the memory controller and the first system bus and the second system bus, and outputting data to the MIPS CPU in a subblock ordering order corresponding to a start address. According to the present invention, there is an advantage that a system-on-chip which provides data required by a MIPS CPU in a subblock ordering order when a cache miss occurs.
서브블록 오더링, MIPS, 캐시, 시스템온칩Subblock Ordering, MIPS, Cache, System-on-Chip
Description
도 1은 본 발명에 따른 시스템온칩의 개략적인 블록도,1 is a schematic block diagram of a system-on-chip in accordance with the present invention;
도 2는 본 발명에 따른 시스템온칩에 포함되는 브리지회로부의 상세 블럭도,2 is a detailed block diagram of a bridge circuit included in a system on chip according to the present invention;
도 3은 도 2의 브리지회로부의 동작 타이밍도이다.3 is an operation timing diagram of the bridge circuit of FIG. 2.
* 도면의 주요 부분에 대한 간단한 설명 *Brief description of the main parts of the drawing
100: 브리지회로부 105: 상태머신 100: bridge circuit 105: state machine
110: 읽기 어드레스 생성부 111: 제1 카운터 110: read address generator 111: first counter
112: 어드레스 래치 113: 배타 논리합 연산부 112: address latch 113: exclusive OR operation unit
120: 데이터 출력부 123: 버퍼 120: data output unit 123: buffer
123: 멀티플렉서 125: 제2 카운터123: multiplexer 125: second counter
본 발명은 시스템온칩에 관한 것으로, 특히 캐시 미스 발생 시 MIPS CPU에서 필요로 하는 데이터를 서브블록 오더링(Subblock ordering) 순서에 의해 제공하는 시스템온칩(System on Chip)에 관한 것이다.BACKGROUND OF THE
일반적으로, CPU가 기억장치로부터 한 데이터를 읽으려고 할 때, 먼저 그 데 이터가 캐시(cache)에 있는지를 검사한다. 만약 그 데이터가 있으면, 그 데이터가 즉시 CPU로 전달되고, 그렇지 않으면, 즉 캐시미스(cache miss)가 발생하면, 그 데이터를 포함하고 있는 블록이 외부기억장치로부터 캐시로 읽혀지고, CPU로 전달된다.In general, when a CPU attempts to read data from storage, it first checks to see if the data is in the cache. If the data is present, it is immediately passed to the CPU, otherwise, if a cache miss occurs, the block containing the data is read from the external storage into the cache and passed to the CPU. .
캐시미스가 발생한 경우 미스가 발생한 해당 데이터만 읽어오는 것이 아니라, 캐시의 가장 작은 저장단위인 라인 크기 만큼의 데이터를 외부기억장치로부터 읽어들여 해당 라인의 내용 전부를 변경하게 된다. 이 때, 캐시미스가 발생한 주소의 데이터가 아닌 해당 라인의 첫번째 번지의 데이터부터 읽어올 경우 해당 데이터가 읽혀올 때까지 동작이 중단되게 되어 CPU의 동작속도가 느려지는 문제점이 있었다.When a cache miss occurs, not only the corresponding data on which the miss occurs, but the data of the line size, which is the smallest storage unit of the cache, is read from an external storage device to change the entire contents of the corresponding line. At this time, when reading from the data of the first address of the corresponding line rather than the data of the cache miss address, the operation is stopped until the corresponding data is read, and thus the operation speed of the CPU is slowed.
이를 해결하기 위하여, MIPS CPU(예를 들어, PMC-SIERRA社의 RM7000, RM5000 시리즈)는 캐시미스가 발생하면 서브블록 오더링(subblock ordering) 방식을 통해 필요로 하는 데이터를 먼저 외부장치로부터 불러들인다. 여기서, 서브블록 오더링이란 MIPS CPU가 캐시 미스가 발생하면 데이터 읽기를 위해서 외부장치에 버스트 읽기 요청(Burst Read Request)을 하는데 이에 응답하여 데이터를 보내는 순서를 말한다.To solve this problem, a MIPS CPU (eg, PMC-SIERRA's RM7000 and RM5000 series) first loads the necessary data from an external device through subblock ordering when a cache miss occurs. Here, the subblock ordering refers to a sequence in which a MIPS CPU makes a burst read request to an external device for reading data when a cache miss occurs, and sends data in response thereto.
서브블록 오더링을 위해서 MIPS CPU가 필요로 하는 더블워드(Doubleword, 64bit) 또는 워드(word, 32bit)의 크기를 가지는 데이터의 시작 어드레스와 함께 버스트 읽기(burst read) 명령어를 외부 장치에 보내면, 외부장치는 요구된 더블워드 또는 워드의 데이터를 첫번 째 데이터로 하여 서브블록 오더링에 맞추어 MIPS CPU로 데이터를 보내준다. 따라서, MIPS CPU는 필요로 하는 데이터부터 먼저 읽어들여 사용할 수 있고, 나머지 어드레스의 데이터들이 라인을 완성할 때 까지 기다리지 않아도 되기 때문에 캐시 읽기 성능이 높아진다.When a burst read instruction is sent to an external device along with a start address of a data having a double word (Doubleword, 64 bit) or word (word, 32 bit) size required by the MIPS CPU for subblock ordering, the external device Sends the data to the MIPS CPU in accordance with the subblock ordering using the requested doubleword or word data as the first data. Therefore, the MIPS CPU can read and use the required data first, and the cache read performance is increased because the data of the remaining addresses do not have to wait until the line is completed.
MIPS CPU에서의 서브블록 오더링에 대하여 자세히 설명하기로 한다.Subblock ordering in the MIPS CPU will be described in detail.
표 1은 SysAD(System Address/Data) 버스의 데이터 전송단위가 더블워드(64bit)인 경우의 서브블록 오더링 시퀀스를 나타내는 표이다.Table 1 shows a subblock ordering sequence when the data transmission unit of the SysAD (System Address / Data) bus is a double word (64 bit).
표 1에서 각 시작 어드레스는 하위 3bit를 생략하고 표현한 것이다. 시작어드레스(제1 어드레스)가 X.....X01인 경우 서브블록 오더링 시퀀스는 B열의 제1 어드레스부터 제4 어드레스 순과 같이 정해진다. 즉, X.....X01, X.....X00, X.....X11, X.....X10의 순으로 정해진다.In Table 1, each start address is expressed by omitting the lower 3 bits. When the start address (first address) is X ..... X01, the subblock ordering sequence is determined in the order of the first address to the fourth address in column B. FIG. That is, it is determined in order of X ..... X01, X ..... X00, X ..... X11, X ..... X10.
이와 같은 서브블록 오더링 시퀀스는 시작 어드레스의 5번째, 4번째 bit를 00에서 11까지 1씩 증가되는 이진 카운트값과 비트별 배타 논리합(XOR) 연산을 통해 구할 수 있다.Such a subblock ordering sequence can be obtained through a binary count value and a bitwise exclusive OR (XOR) operation, in which the fifth and fourth bits of the start address are incremented by 1 from 00 to 11.
SysAD 버스의 데이터 전송단위가 워드(32bit)인 경우는 시작 어드레스의 5번째, 4번째, 3번째 bit를 000에서 111까지 1씩 증가되는 이진 카운트값과 비트별 배타 논리합(XOR) 연산을 통해 구할 수 있다. If the data transfer unit of the SysAD bus is a word (32 bit), the 5th, 4th, and 3rd bits of the start address can be obtained through a binary count value incremented by 1 from 000 to 111 and an exclusive OR of each bit (XOR) operation. Can be.
표 2는 시작 어드레스가 X.....X10일 때, 시작 어드레스의 5번째, 4번째 bit 인 1 0을 이진 카운트값과 XOR 연산하면 표 1에서 C열과 같은 서브블록 오더링 시퀀스가 구해지는 것을 보여준다. Table 2 shows that when the start address is X ..... X10, XOR operation of 1 0, which is the 5th and 4th bits of the start address, with the binary count value results in the subblock ordering sequence like the column C in Table 1. Shows.
SysAD 버스를 통해 통신하는 MIPS CPU에서 캐시미스가 발생하여 시스템온칩에 해당 데이터를 요청하면, AHB 버스(Advanced High-performance Bus)를 통해 내부통신이 이루어지는 시스템온칩은 AHB 프로토콜 상에서 버스트(burst)로 읽혀진 데이터를 MIPS CPU가 요구하는 서브블록 오더링에 맞추어 MIPS CPU에 보내주는 장치가 요구된다.When a cache miss occurs in the MIPS CPU that communicates through the SysAD bus and requests the data on the system-on-chip, the system-on-chip that communicates internally through the advanced high-performance bus is read as a burst on the AHB protocol. An apparatus for sending data to the MIPS CPU in accordance with the subblock ordering required by the MIPS CPU is required.
따라서, 본 발명의 목적은 AHB 프로토콜 상에서 버스트로 읽혀진 데이터를 MIPS CPU가 요구하는 서브블록 오더링에 맞추어 보내주는 시스템온칩을 제공하는데 있다.Accordingly, it is an object of the present invention to provide a system-on-chip for sending data read in bursts on an AHB protocol according to the subblock ordering required by the MIPS CPU.
상기 목적을 달성하기 위한 본 발명에 따른 시스템온칩은 캐시 미스 발생 시 버스트 읽기 요청 및 시작 어드레스를 출력하는 MIPS CPU와 제1 시스템버스를 통해 접속됨과 아울러, 외부 메모리를 제어하여 상기 버스트 읽기 요청에 대응하는 데이터들을 읽어오는 메모리 컨트롤러, 상기 메모리 컨트롤러와 접속된 제2 시스템버스 및 상기 제1 시스템버스와 상기 제2 시스템버스 사이에 접속되고, 상기 데이터들을 상기 시작 어드레스에 대응하는 서브블록 오더링 순서에 의해서 상기 MIPS CPU로 출력하는 브리지회로부를 포함한다.The system-on-chip according to the present invention for achieving the above object is connected to the MIPS CPU for outputting the burst read request and the start address when a cache miss occurs through the first system bus, and controls an external memory to respond to the burst read request. A memory controller for reading data, a second system bus connected to the memory controller, and a connection between the first system bus and the second system bus, and the data in a subblock ordering sequence corresponding to the start address. It includes a bridge circuit for outputting to the MIPS CPU.
여기서, 상기 브리지회로부는, 상기 제1 시스템버스를 통해 전달되는 MIPS CPU의 명령어와 상기 제2 시스템버스를 통해 입력된 제어신호에 따른 상태를 구분하여 상태 신호를 출력하는 상태 머신, 상기 상태 신호에 따라 0에서부터 소정의 크기씩 증가되는 카운터 값과 상기 시작 어드레스를 배타 논리합 연산함으로써 상기 서브블록 오더링 순서대로 읽기 어드레스를 생성하는 읽기 어드레스 생성부 및 상기 메모리컨트롤러에 의해 읽혀진 데이터를 상기 읽기 어드레스 순서에 따라 상기 MIPS CPU로 출력하는 데이터 출력부를 포함하는 것이 바람직하다.Here, the bridge circuit unit, a state machine for outputting a status signal by dividing the state according to the command of the MIPS CPU transmitted through the first system bus and the control signal input through the second system bus, the state signal A read address generator for generating read addresses in the subblock ordering order by performing an exclusive-OR operation on the counter value incremented by a predetermined size from 0 and the data read by the memory controller according to the read address order. It is preferable to include a data output unit for outputting to the MIPS CPU.
여기서, 상기 읽기 어드레스 생성부는, 상기 상태 신호에 따라 카운터 값을 0에서부터 소정의 크기씩 증가시켜 출력하는 제1 카운터, 상기 제1 시스템버스를 통해 전달되는 상기 시작 어드레스를 래치하여 출력하는 어드레스 래치 및 상기 카운터 값과 상기 시작 어드레스의 배타 논리합 연산에 의해 구해진 읽기 어드레스를 출력하는 배타 논리합 연산부를 포함하는 것이 바람직하다.The read address generator may include: a first counter configured to increase a counter value by a predetermined magnitude and output the counter value according to the status signal; an address latch configured to latch and output the start address transmitted through the first system bus; And an exclusive OR operation unit for outputting a read address obtained by an exclusive OR operation of the counter value and the start address.
또한, 상기 제1 시스템버스는 SysAD 버스인 것이 바람직하며, 상기 제2 시스템버스는 AHB 버스인 것이 바람직하다.In addition, the first system bus is preferably a SysAD bus, and the second system bus is preferably an AHB bus.
이하에서는 예시된 첨부도면을 참조하여 본 발명에 대해 설명한다.Hereinafter, the present invention will be described with reference to the accompanying drawings.
도 1은 본 발명에 따른 시스템온칩을 개략적으로 나타내는 블록도이다. 1 is a block diagram schematically showing a system on a chip according to the present invention.
시스템온칩(10)은 제2 시스템버스(40)를 통해 내부 통신을 하며, 브리지회로부(100) 및 메모리컨트롤러(30)를 포함한다. 여기서, 제2 시스템버스(40)는 AHB 버 스로 구현될 수 있다.The system on
여기서, AHB(Advanced High-performance bus)버스는 ARM社에서 제안한 버스 규격인 AMBA(Advanced Microcontroller Bus Architecture)버스에서 시스템 버스로 사용된다. AHB 버스는 파이프라인 전송을 사용하며, 버스트 전송을 지원한다. 또한, 읽기 데이터 버스와 쓰기 데이터 버스를 분리하여 사용한다. 여기서 HRDATA는 읽기 데이터 버스를 통해 슬레이브로부터 마스터 측으로 전송되는 데이터를 의미한다.Here, AHB (Advanced High-performance bus) bus is used as a system bus in the Advanced Microcontroller Bus Architecture (AMBA) bus, a bus standard proposed by ARM. The AHB bus uses pipeline transmission and supports burst transmission. In addition, separate read and write data buses are used. In this case, HRDATA means data transmitted from a slave to a master through a read data bus.
MIPS CPU(60)는 캐시미스가 발생하면, 캐시미스가 발생한 데이터의 시작 어드레스와 함께 버스트 읽기(burst read) 요청을 제1 시스템버스(50)를 통해 시스템온칩(10)에 요청한다. 여기서, MIPS CPU(60)는 캐시 메모리(미도시)를 포함한다.When a cache miss occurs, the
제1 시스템버스(50)는 MIPS CPU(60)와 시스템온칩(10)을 연결하며, SysAD 버스로 구현할 수 있다.The
여기서, SysAD(System Address/Data) 버스는 System Command(SysCmd) 버스와 함께 MIPS CPU의 인터페이스로 제공된다. 이중 SysAD 버스는 데이터/어드레스 버스로 제공되며, SysCmd버스는 SysAD 버스가 데이터를 전송하는지 어드레스를 전송하는지를 나타낸다. SysCmd 버스는 SysAD 버스가 어드레스를 전송할 때는 읽기/쓰기의 트랜잭션(transaction)의 종류를 알리며, SysAD 버스가 데이터를 전송할 때는 데이터에 관한 정보(마지막 데이터, 에러 유무)를 알린다.Here, the SysAD (System Address / Data) bus is provided as an interface of the MIPS CPU together with the System Command (SysCmd) bus. The dual SysAD bus is provided as a data / address bus, and the SysCmd bus indicates whether the SysAD bus carries data or address. The SysCmd bus informs you of the type of read / write transaction when the SysAD bus sends an address, and informs you about the data (last data, error) when the SysAD bus sends data.
메모리 컨트롤러(30)는 MIPS CPU(60)로부터 캐시미스가 발생한 데이터의 시작 어드레스와 함께 버스트 읽기 요청을 받으면 외부 메모리(미도시)를 제어하여 MIPS CPU(60)의 캐시라인에 해당하는 데이터를 읽어온다.When the
브리지회로부(100)는 MIPS CPU(60)의 명령어를 AHB 프로토콜로 변환하며, 메모리 컨트롤러(30)가 읽어온 데이터를 서브블록 오더링 순서로 MIPS CPU(60)에 출력한다.The
도 2는 본 발명에 따른 시스템온칩에 포함되는 브리지회로부의 상세 블럭도이다.2 is a detailed block diagram of a bridge circuit included in a system on chip according to the present invention.
도 1 및 도 2를 참조하면, 브리지회로부(100)는 상태머신(105), 읽기 어드레스 생성부(110) 및 데이터 출력부(120)를 포함한다.1 and 2, the
상태머신(105)은 제1 시스템버스(50)를 통해 전달되는 MIPS CPU의 명령어(SysAD Command)와 제2 시스템버스(40)를 통해 입력된 제1 제어신호(HREADY)에 따른 상태를 구분하여 상태 신호(state)를 출력한다.The
읽기 어드레스 생성부(110)는 제1 카운터(111), 어드레스 래치(112) 및 배타 논리합 연산부(113)를 포함하며, 상태 신호(state)에 따라 0에서부터 소정의 크기씩 증가되는 카운터 값(RB_COUNT)과 시작 어드레스를 배타 논리합 연산함으로써 서브블록 오더링 순서대로 읽기 어드레스(RBRAddr)를 생성한다.The
읽기 어드레스 생성부(110)에 대해 보다 자세히 살펴보면, 제1 카운터(111)는 상태 신호(state)와 명령어(SysAD Command)를 입력 받아카운터 값(RB_COUNT)을 0에서부터 소정의 크기씩 증가시키면서 출력한다. 제1 시스템 버스가 64bit 버스인 경우에는 2씩 증가시키고, 32bit 버스인 경우에는 1씩 증가시킨다.Looking at the read
어드레스 래치(112)는 입력된 명령어(SysAD Command)의 상태가 버스트 읽기 (Burst Read)이면, 제1 시스템버스(50)를 통해 전달되는 시작 어드레스를 래치하여 출력한다.The
배타 논리합 연산부(113)는 제1 카운터(111)에서 출력된 카운터 값(RB_COUNT)과 어드레스 래치(112)에서 출력된 시작 어드레스(RB_ADDR)에 대해 비트열 배타 논리합(XOR) 연산을 하여 읽기 어드레스(RBRAddr)로 출력한다.The exclusive OR
데이터 출력부(120)는 Write Enable Generator(121), Valid Generator(122), 버퍼(123), 멀티플렉서(124) 및 제2 카운터(125)를 포함하며, 메모리컨트롤러(30)에 의해 읽혀진 데이터를 읽기 어드레스(RBRAddr) 순서에 따라 MIPS CPU(60)로 출력한다.The
데이터 출력부(120)에 대해 보다 자세히 살펴보면, 제2 카운터(125)는 제2 시스템버스(40)를 통해 입력된 데이터(HRDATA)를 버퍼(123)에 저장하기 위한 쓰기 어드레스(RBWAddr)를 발생시킨다.Looking at the
Write Enable Generator(121)는 제2 시스템버스(40)를 통해 입력된 데이터(HRDATA)를 버퍼(123)에 저장하도록 하는 인에이블 신호(RBwrite)를 발생시킨다.The write enable
Valid Generator(122) 제1 카운터(111)로부터 입력 받은 카운터 값(RB_COUNT)과 상태신호(state)에 따라 멀티플렉서(124)의 출력을 제어하는 선택신호(RB_Valid)를 출력한다.The
버퍼(123)는 제2 시스템버스(40)를 통해 입력된 데이터(HRDATA)를 쓰기 어드레스(RBWAddr)에 따라 저장하고, 배타 논리합 연산부(113)로부터 입력된 읽기 어드레스(RBRAddr)에 따라 데이터(RBDATA)를 멀티플렉서(124)로 출력한다.
The
멀티플렉서(124)는 버퍼(123)로부터 입력 받은 데이터(RBDATA) 및 제2 시스템버스(40)를 통해 입력받은 데이터(HRDATA)를 Valid Generator(122)로부터 입력되는 선택신호(RB_Valid)에 따라 선택적으로 제1 시스템버스(50)로 출력한다. 선택신호(RB_Valid)가 "로우"일 때는 제2 시스템버스(40)를 통해 입력 받은 데이터(HRDATA)를 출력하고, 선택신호(RB_Valid)가 "하이"일 때는 버퍼(123)로부터 입력받은 데이터(RBDATA)를 출력한다.The
도 3은 도 2의 브리지회로부의 동작 타이밍도이다.3 is an operation timing diagram of the bridge circuit of FIG. 2.
도 1 내지 도 3을 참조하여, 브리지회로부(100)가 외부 메모리로부터 읽어온 데이터를 서브블록 오더링 순서로 MIPS CPU(60)에 출력하는 동작을 설명하기로 한다.1 to 3, the operation of outputting the data read from the external memory to the
본 실시예에서는 제1 시스템버스(50)는 32bit의 SysAD 버스이고, 제2 시스템버스(40)는 128bit의 AHB 버스인 경우를 예를 들어 설명하기로 한다.In the present embodiment, a case where the
먼저, MIPS CPU(60)는 캐시미스가 발생하면 SysAD 버스의 사용권을 얻고, 캐시미스가 발생한 데이터의 시작 어드레스와 버스트 읽기(Burst Read) 요청을 SysAD 버스와 SysCmd 버스를 통해 시스템온칩(10)으로 전달한다.First, the
메모리 컨트롤러(30)는 버스트 읽기(Burst Read) 요청에 따라 외부 메모리(미도시)로부터 데이터(HRDATA)를 128bit씩 4회에 걸쳐 읽어온다. 읽어온 데이터는 제1 제어신호(HREADY)가 "하이" 구간에 브리지 회로부(100)로 전송이 된다.The
Write Enable Generator(121)는 데이터(HRDATA)를 버퍼(123)에 저장하도록 하는 인에이블 신호(RBwrite)를 제1 제어신호(HREADY)에 따라 4회 발생시킨다.
The write enable
Valid Generator(122)는 제1 카운터(111)로부터 입력 받은 카운터 값(RB_COUNT)이 2에서 8일때 선택신호(RB_Valid)를 "하이"로 출력함으로써, 멀티플렉서(124)가 버퍼(123)로부터 입력된 데이터(RBDATA)를 출력하도록 한다.The
제2 카운터(125)는 SysAD 버스를 통해 전달된 시작 어드레스(Addr)에서 4번째부터 6번째 비트(SysAD[5:3])인 000을 입력받고 인에이블 신호(RBwrite)에 따라 2씩 증가시키면서 쓰기 어드레스(RBWAddr)로 출력한다. 버퍼(123)는 AHB 버스를 통해 입력된 데이터(HRDATA)를 쓰기 어드레스(RBWAddr)에 맞추어 저장한다.The
이하, 상기 버퍼(123)에 저장된 데이터를 서브블록 오더링 순서에 의해 출력하는 동작을 설명하기로 한다. 여기서, SysAD 버스를 통해 전달된 시작 어드레스는 X...X00100이라고 가정한다.Hereinafter, an operation of outputting data stored in the
어드레스 래치(112)는 SysAD 버스를 통해 전달된 시작 어드레스(Addr)에서 3번째부터 6번째 비트(SysAD[5:2])인 0001(RB_ADDR)을 래치하여 출력한다.The
제1 카운터(111)는 상태 신호(state)에 따라 카운터 값(RB_COUNT)을 00002(010)에서 1씩 증가시키면서 출력한다.The
배타 논리합 연산부(113)는 카운터 값(RB_COUNT)과 어드레스 래치(112)에서 출력된 0001(RB_ADDR)에 대해서 비트열 배타 논리합(XOR) 연산을 하여 읽기 어드레스(RBRAddr)로 출력한다.The exclusive OR
표 3은 배타 논리합 연산부(113)에서 0001(RB_ADDR)과 카운터 값(RB_COUNT)에 대한 비트열 XOR 연산을 보여준다.
Table 3 shows a bit string XOR operation for 0001 (RB_ADDR) and a counter value (RB_COUNT) in the exclusive OR
이에 의해, 시작 어드레스가 X...X00100일 때의 서브블록 오더링 시퀀스에 따른 읽기 어드레스(RBRAddr)가 배타 논리합 연산부(113)에서 버퍼(123)로 순서대로 출력된다. 버퍼(123)는 상기 읽기 어드레스(RBRAddr)에 따라 저장되어 있는 데이터를 순서대로 멀티플렉서(124)로 출력한다.As a result, the read addresses RBRAddr according to the subblock ordering sequence when the start address is X ... X00100 are sequentially output from the exclusive OR
먼저, 멀티플렉서(124)는 001의 값을 가지는 읽기 어드레스(RBRAddr)와 "로우"인 선택신호(RB_Valid)를 입력 받고 AHB 버스를 통해 직접 입력 받은 데이터(HRDATA[95:64))를 먼저 출력한다. 외부로부터 처음 읽어온 데이터는 버퍼(123)에 저장할 필요 없이 바로 SysAD 버스로 출력하여 MIPS CPU(60)에 신속하게 제공하는 것이 바람직하기 때문이다. 다음으로, "하이"인 선택신호(RB_Valid)를 입력 받고 버퍼(123)에 저장되어 있는 데이터(RBDATA)를 서브블록 오더링 순서대로 출력한다.First, the
시스템온칩(10)은 도 3에 도시된 바와 같이 SysAD 버스를 통해 외부 메모리로부터 읽어온 데이터를 서브블록 오더링 순서대로 MIPS CPU(60)로 출력하게 된다. 시스템온칩(10)은 데이터(RBDATA[63:32])가 마지막으로 출력될 때 SysCmd 버스에 해당 데이터가 마지막 데이터(Last DATA)라는 정보를 실는다. 이에 의해, 시스템온 칩(10)은 서브블록 오더링 순서대로 MIPS CPU가 원하는 데이터를 전송을 완료한다.As shown in FIG. 3, the system on
이상에서 설명한 바와 같이, 본 발명에 의하면, 캐시 미스 발생 시 MIPS CPU에서 필요로 하는 데이터를 서브블록 오더링 순서에 의해 제공하는 시스템온칩을 제공할 수 있다는 장점이 있다.As described above, according to the present invention, there is an advantage in that a system-on-chip providing data required by a MIPS CPU in a subblock ordering order when a cache miss occurs can be provided.
이상에서는 본 발명의 바람직한 실시예에 대해서 도시하고 설명하였으나, 본 발명은 상술한 특정의 실시예에 한정되지 아니하며, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진 자라면 누구든지 다양한 변형 실시가 가능한 것은 물론이고, 그와 같은 변경은 청구범위 기재의 범위 내에 있게 된다.Although the preferred embodiments of the present invention have been illustrated and described above, the present invention is not limited to the specific embodiments described above, and the present invention is not limited to the specific embodiments of the present invention without departing from the spirit of the present invention as claimed in the claims. Anyone skilled in the art can make various modifications, as well as such modifications are within the scope of the claims.
Claims (5)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020040090265A KR20060040973A (en) | 2004-11-08 | 2004-11-08 | System on chip |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020040090265A KR20060040973A (en) | 2004-11-08 | 2004-11-08 | System on chip |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20060040973A true KR20060040973A (en) | 2006-05-11 |
Family
ID=37147741
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020040090265A KR20060040973A (en) | 2004-11-08 | 2004-11-08 | System on chip |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR20060040973A (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112035398A (en) * | 2020-08-25 | 2020-12-04 | 青岛信芯微电子科技股份有限公司 | System-level chip SoC and data processing method applicable to SoC |
-
2004
- 2004-11-08 KR KR1020040090265A patent/KR20060040973A/en not_active Application Discontinuation
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112035398A (en) * | 2020-08-25 | 2020-12-04 | 青岛信芯微电子科技股份有限公司 | System-level chip SoC and data processing method applicable to SoC |
CN112035398B (en) * | 2020-08-25 | 2023-10-24 | 青岛信芯微电子科技股份有限公司 | System-on-chip (SoC) and data processing method suitable for SoC |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR960012660B1 (en) | Arbitration control logic for computer system having dual bus architecture | |
JP4917671B2 (en) | Data transmission method between master device and slave device | |
US6167492A (en) | Circuit and method for maintaining order of memory access requests initiated by devices coupled to a multiprocessor system | |
AU663537B2 (en) | Bidirectional data storage facility for bus interface unit | |
US5809524A (en) | Method and apparatus for cache memory replacement line identification | |
US20040107265A1 (en) | Shared memory data transfer apparatus | |
JP2017220237A (en) | Memory module, system including the same, and method for operating the same | |
US20070255872A1 (en) | Bus system and semiconductor integrated circuit | |
JP2005050324A (en) | Interface conversion system and its method | |
KR101733203B1 (en) | Bus system having id converter and coverting method thereof | |
US10133497B1 (en) | SPI command censoring method and apparatus | |
JPH0642226B2 (en) | Data processing system | |
CN114265872B (en) | Interconnection device for bus | |
KR20080012233A (en) | Memory interface for controlling burst memory access, and method for controlling the same | |
US5506995A (en) | Bus master for selectively disconnecting/connecting a first bus to and from a second bus in response to an acquisition request | |
JP2003296267A (en) | Bus system and information processing system including bus system | |
JPH03225542A (en) | Memory of data and processing circuit for bit encode data | |
EP1367499A1 (en) | Compute node to mesh interface for highly scalable parallel processing system | |
US8688890B2 (en) | Bit ordering for communicating an address on a serial fabric | |
KR20060040973A (en) | System on chip | |
JP2009217714A (en) | Data processing circuit, cache system and data transfer device | |
KR960016402B1 (en) | Cache data high speed transferring apparatus | |
JP2003050742A (en) | Device and method for processing information, program storage medium and program | |
KR100606698B1 (en) | Interfacing apparatus | |
JPH02188856A (en) | Memory access circuit |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
WITN | Withdrawal due to no request for examination |