KR20060040973A - System on chip - Google Patents

System on chip Download PDF

Info

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
Application number
KR1020040090265A
Other languages
Korean (ko)
Inventor
정지원
Original Assignee
삼성전자주식회사
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020040090265A priority Critical patent/KR20060040973A/en
Publication of KR20060040973A publication Critical patent/KR20060040973A/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7807System 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

시스템온칩{System on Chip}System on Chip

도 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 INVENTION 1. Field of the Invention The present invention relates to a system on chip, and more particularly, to a system on chip for providing data required by a MIPS CPU in a subblock ordering order when a cache miss occurs.

일반적으로, 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).

A열 A column B열B column C열Column C D열D column 제1 어드레스First address x.....x00x ..... x00 x.....x01x ..... x01 x.....x10x ..... x10 x.....x11x ..... x11 제2 어드레스Second address x.....x01x ..... x01 x.....x00x ..... x00 x.....x11x ..... x11 x.....x10x ..... x10 제3 어드레스Third address x.....x10x ..... x10 x.....x11x ..... x11 x.....x00x ..... x00 x.....x01x ..... x01 제4 어드레스Fourth address x.....x11x ..... x11 x.....x10x ..... x10 x.....x01x ..... x01 x.....x00x ..... x00

표 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.

시작 어드레스Start address 이진 카운트값Binary count value XOR 연산을 통해 구해진 어드레스Address obtained through XOR operation x.....x10x ..... x10 0 00 0 x.....x10x ..... x10 x.....x10x ..... x10 0 10 1 x.....x11x ..... x11 x.....x10x ..... x10 1 01 0 x.....x00x ..... x00 x.....x10x ..... x10 1 11 1 x.....x01x ..... x01

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 chip 10 communicates internally through the second system bus 40, and includes a bridge circuit unit 100 and a memory controller 30. Here, the second system bus 40 may be implemented as an AHB bus.

여기서, 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 MIPS CPU 60 requests a burst read request to the system on chip 10 through the first system bus 50 together with the start address of the data where the cache miss occurs. Here, the MIPS CPU 60 includes a cache memory (not shown).

제1 시스템버스(50)는 MIPS CPU(60)와 시스템온칩(10)을 연결하며, SysAD 버스로 구현할 수 있다.The first system bus 50 connects the MIPS CPU 60 and the system on chip 10 and may be implemented as a SysAD bus.

여기서, 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 memory controller 30 receives a burst read request together with the start address of the data where the cache miss occurs from the MIPS CPU 60, the memory controller 30 controls the external memory (not shown) to read data corresponding to the cache line of the MIPS CPU 60. come.

브리지회로부(100)는 MIPS CPU(60)의 명령어를 AHB 프로토콜로 변환하며, 메모리 컨트롤러(30)가 읽어온 데이터를 서브블록 오더링 순서로 MIPS CPU(60)에 출력한다.The bridge circuit unit 100 converts the instructions of the MIPS CPU 60 into the AHB protocol, and outputs the data read by the memory controller 30 to the MIPS CPU 60 in the subblock ordering order.

도 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 bridge circuit unit 100 includes a state machine 105, a read address generator 110, and a data output unit 120.

상태머신(105)은 제1 시스템버스(50)를 통해 전달되는 MIPS CPU의 명령어(SysAD Command)와 제2 시스템버스(40)를 통해 입력된 제1 제어신호(HREADY)에 따른 상태를 구분하여 상태 신호(state)를 출력한다.The state machine 105 distinguishes a state according to a command of the MIPS CPU transmitted through the first system bus 50 and a state according to the first control signal HREADY input through the second system bus 40. Output a state signal.

읽기 어드레스 생성부(110)는 제1 카운터(111), 어드레스 래치(112) 및 배타 논리합 연산부(113)를 포함하며, 상태 신호(state)에 따라 0에서부터 소정의 크기씩 증가되는 카운터 값(RB_COUNT)과 시작 어드레스를 배타 논리합 연산함으로써 서브블록 오더링 순서대로 읽기 어드레스(RBRAddr)를 생성한다.The read address generator 110 includes a first counter 111, an address latch 112, and an exclusive-OR operator 113, and a counter value RB_COUNT that is incremented by a predetermined size from 0 according to a state signal. ) And the start address are generated by the exclusive OR operation of the read addresses RBRAddr in the subblock ordering order.

읽기 어드레스 생성부(110)에 대해 보다 자세히 살펴보면, 제1 카운터(111)는 상태 신호(state)와 명령어(SysAD Command)를 입력 받아카운터 값(RB_COUNT)을 0에서부터 소정의 크기씩 증가시키면서 출력한다. 제1 시스템 버스가 64bit 버스인 경우에는 2씩 증가시키고, 32bit 버스인 경우에는 1씩 증가시킨다.Looking at the read address generator 110 in detail, the first counter 111 receives a state signal and a command SysAD Command and outputs a counter value RB_COUNT by increasing a predetermined size from 0. . If the first system bus is a 64-bit bus, it is incremented by two, and in the case of a 32-bit bus, it is incremented by one.

어드레스 래치(112)는 입력된 명령어(SysAD Command)의 상태가 버스트 읽기 (Burst Read)이면, 제1 시스템버스(50)를 통해 전달되는 시작 어드레스를 래치하여 출력한다.The address latch 112 latches and outputs a start address transmitted through the first system bus 50 when the state of the input command SysAD command is burst read.

배타 논리합 연산부(113)는 제1 카운터(111)에서 출력된 카운터 값(RB_COUNT)과 어드레스 래치(112)에서 출력된 시작 어드레스(RB_ADDR)에 대해 비트열 배타 논리합(XOR) 연산을 하여 읽기 어드레스(RBRAddr)로 출력한다.The exclusive OR operation unit 113 performs a bit string exclusive OR operation on the counter value RB_COUNT output from the first counter 111 and the start address RB_ADDR output from the address latch 112 to perform a read address ( RBRAddr).

데이터 출력부(120)는 Write Enable Generator(121), Valid Generator(122), 버퍼(123), 멀티플렉서(124) 및 제2 카운터(125)를 포함하며, 메모리컨트롤러(30)에 의해 읽혀진 데이터를 읽기 어드레스(RBRAddr) 순서에 따라 MIPS CPU(60)로 출력한다.The data output unit 120 includes a write enable generator 121, a valid generator 122, a buffer 123, a multiplexer 124, and a second counter 125, and reads data read by the memory controller 30. Output to the MIPS CPU 60 in the order of the read address RBRAddr.

데이터 출력부(120)에 대해 보다 자세히 살펴보면, 제2 카운터(125)는 제2 시스템버스(40)를 통해 입력된 데이터(HRDATA)를 버퍼(123)에 저장하기 위한 쓰기 어드레스(RBWAddr)를 발생시킨다.Looking at the data output unit 120 in more detail, the second counter 125 generates a write address RBWAddr for storing the data HRDATA input through the second system bus 40 in the buffer 123. Let's do it.

Write Enable Generator(121)는 제2 시스템버스(40)를 통해 입력된 데이터(HRDATA)를 버퍼(123)에 저장하도록 하는 인에이블 신호(RBwrite)를 발생시킨다.The write enable generator 121 generates an enable signal RBwrite for storing the data HRDATA input through the second system bus 40 in the buffer 123.

Valid Generator(122) 제1 카운터(111)로부터 입력 받은 카운터 값(RB_COUNT)과 상태신호(state)에 따라 멀티플렉서(124)의 출력을 제어하는 선택신호(RB_Valid)를 출력한다.The valid generator 122 outputs a selection signal RB_Valid for controlling the output of the multiplexer 124 according to the counter value RB_COUNT received from the first counter 111 and the state signal state.

버퍼(123)는 제2 시스템버스(40)를 통해 입력된 데이터(HRDATA)를 쓰기 어드레스(RBWAddr)에 따라 저장하고, 배타 논리합 연산부(113)로부터 입력된 읽기 어드레스(RBRAddr)에 따라 데이터(RBDATA)를 멀티플렉서(124)로 출력한다. The buffer 123 stores the data HRDATA input through the second system bus 40 according to the write address RBWAddr, and stores the data HRDATA according to the read address RBRAddr input from the exclusive logical OR operation unit 113. ) Is output to the multiplexer 124.                     

멀티플렉서(124)는 버퍼(123)로부터 입력 받은 데이터(RBDATA) 및 제2 시스템버스(40)를 통해 입력받은 데이터(HRDATA)를 Valid Generator(122)로부터 입력되는 선택신호(RB_Valid)에 따라 선택적으로 제1 시스템버스(50)로 출력한다. 선택신호(RB_Valid)가 "로우"일 때는 제2 시스템버스(40)를 통해 입력 받은 데이터(HRDATA)를 출력하고, 선택신호(RB_Valid)가 "하이"일 때는 버퍼(123)로부터 입력받은 데이터(RBDATA)를 출력한다.The multiplexer 124 selectively selects the data RBDATA received from the buffer 123 and the data HRDATA received through the second system bus 40 according to the selection signal RB_Valid input from the valid generator 122. Output to the first system bus 50. When the selection signal RB_Valid is "low", the data HRDATA received through the second system bus 40 is output. When the selection signal RB_Valid is "high," the data received from the buffer 123 ( RBDATA).

도 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 MIPS CPU 60 in the subblock ordering order will be described with reference to FIGS. 1 to 3.

본 실시예에서는 제1 시스템버스(50)는 32bit의 SysAD 버스이고, 제2 시스템버스(40)는 128bit의 AHB 버스인 경우를 예를 들어 설명하기로 한다.In the present embodiment, a case where the first system bus 50 is a 32-bit SysAD bus and the second system bus 40 is a 128-bit AHB bus will be described by way of example.

먼저, MIPS CPU(60)는 캐시미스가 발생하면 SysAD 버스의 사용권을 얻고, 캐시미스가 발생한 데이터의 시작 어드레스와 버스트 읽기(Burst Read) 요청을 SysAD 버스와 SysCmd 버스를 통해 시스템온칩(10)으로 전달한다.First, the MIPS CPU 60 obtains a license of the SysAD bus when a cache miss occurs, and transmits a start address and a burst read request of the cache missed data to the system-on-chip 10 through the SysAD bus and the SysCmd bus. To pass.

메모리 컨트롤러(30)는 버스트 읽기(Burst Read) 요청에 따라 외부 메모리(미도시)로부터 데이터(HRDATA)를 128bit씩 4회에 걸쳐 읽어온다. 읽어온 데이터는 제1 제어신호(HREADY)가 "하이" 구간에 브리지 회로부(100)로 전송이 된다.The memory controller 30 reads the data HRDATA from the external memory (not shown) four times by 128 bits in response to a burst read request. The read data is transmitted to the bridge circuit unit 100 in the first control signal HREADY section "high".

Write Enable Generator(121)는 데이터(HRDATA)를 버퍼(123)에 저장하도록 하는 인에이블 신호(RBwrite)를 제1 제어신호(HREADY)에 따라 4회 발생시킨다. The write enable generator 121 generates the enable signal RBwrite four times to store the data HRDATA in the buffer 123 according to the first control signal HREADY.                     

Valid Generator(122)는 제1 카운터(111)로부터 입력 받은 카운터 값(RB_COUNT)이 2에서 8일때 선택신호(RB_Valid)를 "하이"로 출력함으로써, 멀티플렉서(124)가 버퍼(123)로부터 입력된 데이터(RBDATA)를 출력하도록 한다.The valid generator 122 outputs the selection signal RB_Valid as “high” when the counter value RB_COUNT input from the first counter 111 is 2 to 8 so that the multiplexer 124 is input from the buffer 123. Output the data RBDATA.

제2 카운터(125)는 SysAD 버스를 통해 전달된 시작 어드레스(Addr)에서 4번째부터 6번째 비트(SysAD[5:3])인 000을 입력받고 인에이블 신호(RBwrite)에 따라 2씩 증가시키면서 쓰기 어드레스(RBWAddr)로 출력한다. 버퍼(123)는 AHB 버스를 통해 입력된 데이터(HRDATA)를 쓰기 어드레스(RBWAddr)에 맞추어 저장한다.The second counter 125 receives 000, which is the fourth to sixth bits SysAD [5: 3], from the start address Addr transferred through the SysAD bus, and increments by two according to the enable signal RBwrite. Output to the write address (RBWAddr). The buffer 123 stores the data HRDATA input through the AHB bus in accordance with the write address RBWAddr.

이하, 상기 버퍼(123)에 저장된 데이터를 서브블록 오더링 순서에 의해 출력하는 동작을 설명하기로 한다. 여기서, SysAD 버스를 통해 전달된 시작 어드레스는 X...X00100이라고 가정한다.Hereinafter, an operation of outputting data stored in the buffer 123 in the subblock ordering order will be described. Here, it is assumed that the starting address delivered through the SysAD bus is X ... X00100.

어드레스 래치(112)는 SysAD 버스를 통해 전달된 시작 어드레스(Addr)에서 3번째부터 6번째 비트(SysAD[5:2])인 0001(RB_ADDR)을 래치하여 출력한다.The address latch 112 latches and outputs 0001 (RB_ADDR), which is the third to sixth bits SysAD [5: 2], from the start address Addr transferred through the SysAD bus.

제1 카운터(111)는 상태 신호(state)에 따라 카운터 값(RB_COUNT)을 00002(010)에서 1씩 증가시키면서 출력한다.The first counter 111 outputs the counter value RB_COUNT in increments of 1 from 0000 2 (0 10 ) according to the state signal state.

배타 논리합 연산부(113)는 카운터 값(RB_COUNT)과 어드레스 래치(112)에서 출력된 0001(RB_ADDR)에 대해서 비트열 배타 논리합(XOR) 연산을 하여 읽기 어드레스(RBRAddr)로 출력한다.The exclusive OR operation 113 performs a bit string exclusive OR on the counter value RB_COUNT and 0001 (RB_ADDR) output from the address latch 112 and outputs the bit array exclusive OR to the read address RBRAddr.

표 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 operation 113.                     

RB_ADDRRB_ADDR RB_COUNTRB_COUNT RBRAddrRBRAddr 어드레스Address 0 0 0 10 0 0 1 0 0 0 0(0)0 0 0 0 (0) 0 0 0 1(1)0 0 0 1 (1) X...X00100X ... X00100 0 0 0 10 0 0 1 0 0 0 1(1)0 0 0 1 (1) 0 0 0 0(0)0 0 0 0 (0) X...X00000X ... X00000 0 0 0 10 0 0 1 0 0 1 0(2)0 0 1 0 (2) 0 0 1 1(3)0 0 1 1 (3) X...X01100X ... X01100 0 0 0 10 0 0 1 0 0 1 1(3)0 0 1 1 (3) 0 0 1 0(2)0 0 1 0 (2) X...X01000X ... X01000 0 0 0 10 0 0 1 0 1 0 0(4)0 1 0 0 (4) 0 1 0 1(5)0 1 0 1 (5) X...X10100X ... X10100 0 0 0 10 0 0 1 0 1 0 1(5)0 1 0 1 (5) 0 1 0 0(4)0 1 0 0 (4) X...X10000X ... X10000 0 0 0 10 0 0 1 0 1 1 0(6)0 1 1 0 (6) 0 1 1 1(7)0 1 1 1 (7) X...X11100X ... X11100 0 0 0 10 0 0 1 0 1 1 1(7)0 1 1 1 (7) 0 1 1 0(6)0 1 1 0 (6) X...X11000X ... X11000

이에 의해, 시작 어드레스가 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 operation 113 to the buffer 123. The buffer 123 sequentially outputs the data stored according to the read address RBRAddr to the multiplexer 124.

먼저, 멀티플렉서(124)는 001의 값을 가지는 읽기 어드레스(RBRAddr)와 "로우"인 선택신호(RB_Valid)를 입력 받고 AHB 버스를 통해 직접 입력 받은 데이터(HRDATA[95:64))를 먼저 출력한다. 외부로부터 처음 읽어온 데이터는 버퍼(123)에 저장할 필요 없이 바로 SysAD 버스로 출력하여 MIPS CPU(60)에 신속하게 제공하는 것이 바람직하기 때문이다. 다음으로, "하이"인 선택신호(RB_Valid)를 입력 받고 버퍼(123)에 저장되어 있는 데이터(RBDATA)를 서브블록 오더링 순서대로 출력한다.First, the multiplexer 124 receives a read address RBRAddr having a value of 001 and a selection signal RB_Valid having a low value, and first outputs data HRDATA (95:64) directly input through the AHB bus. . This is because the data first read from the outside is not required to be stored in the buffer 123, but is immediately output to the SysAD bus and quickly provided to the MIPS CPU 60. Next, the selection signal RB_Valid that is "high" is input, and the data RBDATA stored in the buffer 123 is output in the order of subblock ordering.

시스템온칩(10)은 도 3에 도시된 바와 같이 SysAD 버스를 통해 외부 메모리로부터 읽어온 데이터를 서브블록 오더링 순서대로 MIPS CPU(60)로 출력하게 된다. 시스템온칩(10)은 데이터(RBDATA[63:32])가 마지막으로 출력될 때 SysCmd 버스에 해당 데이터가 마지막 데이터(Last DATA)라는 정보를 실는다. 이에 의해, 시스템온 칩(10)은 서브블록 오더링 순서대로 MIPS CPU가 원하는 데이터를 전송을 완료한다.As shown in FIG. 3, the system on chip 10 outputs data read from an external memory through the SysAD bus to the MIPS CPU 60 in the order of subblock ordering. When the data RBDATA [63:32] is last output, the system on chip 10 carries information that the corresponding data is the last data on the SysCmd bus. As a result, the system-on-chip 10 completes the transmission of data desired by the MIPS CPU in the order of subblock ordering.

이상에서 설명한 바와 같이, 본 발명에 의하면, 캐시 미스 발생 시 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)

캐시 미스 발생 시 버스트 읽기 요청 및 시작 어드레스를 출력하는 MIPS CPU와 제1 시스템버스를 통해 접속된 시스템온칩에 있어서,In the system-on-chip connected via the first system bus and the MIPS CPU that outputs a burst read request and start address when a cache miss occurs, 외부 메모리를 제어하여 상기 버스트 읽기 요청에 대응하는 데이터들을 읽어오는 메모리 컨트롤러;A memory controller configured to control an external memory to read data corresponding to the burst read request; 상기 메모리 컨트롤러와 접속된 제2 시스템버스; 및A second system bus connected to the memory controller; And 상기 제1 시스템버스와 상기 제2 시스템버스 사이에 접속되고, 상기 데이터들을 상기 시작 어드레스에 대응하는 서브블록 오더링 순서에 의해서 상기 MIPS CPU로 출력하는 브리지회로부를 포함하는 것을 특징으로 하는 시스템온칩.And a bridge circuit portion connected between the first system bus and the second system bus and outputting the data to the MIPS CPU in a subblock ordering order corresponding to the start address. 제 1 항에 있어서,The method of claim 1, 상기 브리지회로부는,The bridge circuit unit, 상기 제1 시스템버스를 통해 전달되는 MIPS CPU의 명령어와 상기 제2 시스템버스를 통해 입력된 제어신호에 따른 상태를 구분하여 상태 신호를 출력하는 상태 머신;A state machine for dividing a state according to a command of a MIPS CPU transmitted through the first system bus and a state according to a control signal input through the second system bus and outputting a state signal; 상기 상태 신호에 따라 0에서부터 소정의 크기씩 증가되는 카운터 값과 상기 시작 어드레스를 배타 논리합 연산함으로써 상기 서브블록 오더링 순서대로 읽기 어드레스를 생성하는 읽기 어드레스 생성부; 및,A read address generator for generating read addresses in the subblock ordering order by performing an exclusive OR operation on a counter value incremented by a predetermined size from 0 according to the status signal; And, 상기 메모리컨트롤러에 의해 읽혀진 데이터들을 상기 읽기 어드레스 순서에 따라 상기 MIPS CPU로 출력하는 데이터 출력부를 포함하는 것을 특징으로 하는 시스템온칩.And a data output unit configured to output data read by the memory controller to the MIPS CPU according to the read address order. 제 2 항에 있어서,The method of claim 2, 상기 읽기 어드레스 생성부는,The read address generator, 상기 상태 신호에 따라 카운터 값을 0에서부터 소정의 크기씩 증가시켜 출력하는 제1 카운터;A first counter that increases the counter value by a predetermined magnitude and outputs the counter value according to the state signal; 상기 제1 시스템버스를 통해 전달되는 상기 시작 어드레스를 래치하여 출력하는 어드레스 래치; 및,An address latch configured to latch and output the start address transmitted through the first system bus; And, 상기 카운터 값과 상기 시작 어드레스의 배타 논리합 연산에 의해 구해진 읽 기 어드레스를 출력하는 배타 논리합 연산부를 포함하는 것을 특징으로 하는 시스템온칩.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. 제 2 항에 있어서,The method of claim 2, 상기 제1 시스템버스는 SysAD(System Address/Data) 버스인 것을 특징으로 하는 시스템온칩.The first system bus is a system on chip, characterized in that the SysAD (System Address / Data) bus. 제 2 항에 있어서,The method of claim 2, 상기 제2 시스템버스는 AHB(Advanced High-performance bus) 버스인 것을 특징으로 하는 시스템온칩.The second system bus is a system-on-chip, characterized in that the AHB (Advanced High-performance bus) bus.
KR1020040090265A 2004-11-08 2004-11-08 System on chip KR20060040973A (en)

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)

* Cited by examiner, † Cited by third party
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

Cited By (2)

* Cited by examiner, † Cited by third party
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