KR970010367B1 - On-board interleaving apparatus and method of main memory on multi processor system - Google Patents

On-board interleaving apparatus and method of main memory on multi processor system Download PDF

Info

Publication number
KR970010367B1
KR970010367B1 KR1019940027766A KR19940027766A KR970010367B1 KR 970010367 B1 KR970010367 B1 KR 970010367B1 KR 1019940027766 A KR1019940027766 A KR 1019940027766A KR 19940027766 A KR19940027766 A KR 19940027766A KR 970010367 B1 KR970010367 B1 KR 970010367B1
Authority
KR
South Korea
Prior art keywords
bank
board
memory
address
data
Prior art date
Application number
KR1019940027766A
Other languages
Korean (ko)
Other versions
KR960015247A (en
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 KR1019940027766A priority Critical patent/KR970010367B1/en
Publication of KR960015247A publication Critical patent/KR960015247A/en
Application granted granted Critical
Publication of KR970010367B1 publication Critical patent/KR970010367B1/en

Links

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
    • G06F13/1673Details of memory controller using buffers
    • 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/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1652Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture

Abstract

The first and second input buffers(21a,21b) work as each data course to store in the first and second banks(23,24) the relevant address and data stored temporarily to input a queue(18) according to I/O signal in the RP standard interface(17) to be connected to system bus. The first and second output buffer(22a,22b) act as each data course for extra storage to output each extra address and data to RP standard interface(17) through output queue(19) to output the relevant address and data read from the first and second bank(23,24) to PR standard interface(17) through output queue(19). The first memory control part(20a) and the second memory control part(20b) control selectively the first input buffer(21a) or the first output buffer(22a) and the second input buffer(21b) or the second output buffer(22b).

Description

멀티프로세서 시스템에서 주기억장치의 보드내 인터리빙 장치 및 방법On-board Interleaving Device and Method of Main Memory in Multiprocessor System

제1도는 일반적인 타이컴(TICOM)의 블록 구성도.1 is a block diagram of a typical TICOM.

제2도는 종래 메모리 보드의 어드레스 경로를 위한 블록 구성도.2 is a block diagram illustrating an address path of a conventional memory board.

제3도는 종래의 인터리빙 관련 어드레서 경로를 위한 블록 구성도.3 is a block diagram of a conventional interleaving related addresser path.

제4도는 종래의 메모리 보드의 데이타 경로를 위한 블록 구성도.4 is a block diagram illustrating a data path of a conventional memory board.

제5도는 본 발명의 메모리 보드의 데이타 경로를 위한 블록 구성도.5 is a block diagram illustrating a data path of a memory board of the present invention.

제6도는 본 발명의 인터리빙 관련 어드레스 경로를 위한 블록 구성도.6 is a block diagram for an interleaving related address path of the present invention.

제7도는 본 발명 멀티프로세서 시스템에서 주기억장치의 보드내 인터리빙 흐름도.7 is an in-board interleaving flowchart of main memory in the multiprocessor system of the present invention.

제7a도는 입력큐를 뱅크수에 상응하게 설계하는 경우의 인터리빙 흐름도.FIG. 7A is an interleaving flowchart when the input queue is designed to correspond to the number of banks. FIG.

제7b도는 입력큐를 공유하는 경우의 인터리빙 흐름도.7B is an interleaving flowchart when sharing input queues.

* 도면의 주요부분에 대한 부호의 설명* Explanation of symbols for main parts of the drawings

17 : 알피(RP) 스탠다드 인터페이스 18 : 입력큐17: RP standard interface 18: input queue

19 : 출력큐 20a : 제1메모리 제어부19: output queue 20a: first memory controller

20b : 제2메모리 제어부 21a : 제1입력버퍼20b: second memory controller 21a: first input buffer

21b : 제2입력버퍼 22a : 제1출력버퍼21b: second input buffer 22a: first output buffer

22b : 제2출력버퍼 23 : 제1뱅크22b: second output buffer 23: the first bank

24 : 제2뱅크24: Second Bank

본 발명은 멀티프로세서 시스템에서 주기억장치의 보드내 인터리빙장치 및 방법에 관한 것으로, 특히 버스를 기반으로 하는 컴퓨터 시스템의 주기억장치의 메모리 보드내에 인터리빙을 구현하므로써 시스템의 성능을 향상시키고자 한 것이다.The present invention relates to an on-board interleaving apparatus and method of a main memory in a multiprocessor system, and more particularly, to improve the performance of a system by implementing interleaving in a memory board of a main memory of a bus-based computer system.

일반적으로, 타이컴(TICOM : Tightly coupled multi-processor)은 제1도에 도시한 바와 같이 행정 전산망을 주 전산기 II로서 버스를 기반으로 하고 프로세서를 20개까지 탑재할 수 있는 시스템으로서, 중앙처리장치(1)와, SCM(Small Core Memory)(2)와, 메모리(3)와, VME버스(6)의 입출력 데이타를 처리하는 입출력 처리기(5)와,상기 입출력 처리기(5)와 상기 중앙처리장치(1), SCM(2) 및 메모리(3)를 연결하는 시스템 버스(4)로 구성된다.In general, a TCOM (Tightly coupled multi-processor) is a system that can carry up to 20 processors based on a bus as the main computer II as shown in FIG. (1), an SCM (Small Core Memory) 2, a memory 3, an input / output processor 5 for processing input / output data of the VME bus 6, the input / output processor 5 and the central processing It consists of a system bus 4 connecting the device 1, the SCM 2 and the memory 3.

상기 인터리빙(Interleaving)은 프로그램이 로칼리티(locality: 집약성)가 있다면 연속된 메모리의 접근에 빠르게 동작하기 위하여 메모리 모듈은 서로가 독립적으로 동작하여야 한다.The interleaving requires that memory modules operate independently of each other in order for a program to have a locality (locality), so that the program can quickly access the continuous memory.

따라서, 통상적으로는 어드레스의 최하위 비트를 조정하여 메모리 모듈 선택을 변한시켜 파이프 라인(pipe-line)동작을 할 수 있게 한다.Thus, the least significant bit of the address is typically adjusted to vary the memory module selection to allow for pipeline-line operation.

이와 같은 상기 타이컴에서는 보드당 64메가 바이트의 디램(DRAME)을 탑재할 수 있고, 시스템당 8장의 메모리 보드를 장착할 수 있어서 전체적으로 512메가 바이트의 용량을 보유하고 있으며, 보드단위의 상기 인터리빙을 적용하여 최대 8-웨이(way: 인터리빙 제어정보) 인터리빙까지 동작될 수 있게 설계되어 있는데, 이는 파워 온시 메모리의 장수 및 위치에 따라 자동으로 세팅되도록 되어 있다.In this type of tycom, 64 megabytes of DRAM per board can be loaded, and 8 memory boards can be installed per system, thus retaining a total capacity of 512 megabytes. It is designed to operate up to 8-way (interleaving control information) interleaving, which is set automatically according to the number and location of the memory at power-on.

그러나, 보드당 64메가 바이트의 큰 용량의 하나의 메모리 모듈로 동작하므로서 홀수장의 메모리 보드를 장착하였을시 성능의 저해요인이 되고 있다.However, since it operates as a memory module having a large capacity of 64 megabytes per board, performance is hindered when an odd memory board is mounted.

또한, 상기 메모리 보드는 버스로부터 어드레스 경로를 위한 블록 구성은 제2도에 도시한 바와 같이 시스템 버스(4)와, 이 시스템 버스(4)를 통해 들어온 어드레스를 일시 저장하기 위한 레지스터(4a)와, 메모리 뱅크에 있는 디램 드라이버(4c)와, 상기 레지스터(4a)에서 출력되는 어드레스들에서 하나를 메모리 어드레스를 선택하여 출력하는 다수개의 멀티플렉서부(4b)와, 뱅크선택용 어드레스 라인(A25)으로 연결된 구성이었다.In addition, the memory board includes a system bus 4, a register 4a for temporarily storing an address entered through the system bus 4, as shown in FIG. The DRAM driver 4c in the memory bank, the multiplexer 4b for selecting and outputting a memory address from one of the addresses output from the register 4a, and the address selection line A25 for bank selection are provided. It was a connected configuration.

상기 멀티플렉서부(4c)는 인터리빙 관련 어드레스 경로로서 이에 대해 구체적으로 제3도에 도시한 바와 같이 3개의 멀티플렉서(15,16,17)의 입력단에 4메가(22비트)의 어드레스 라인이 연결되고, 뱅크선택용 어드레스 라인(A25)을 이용하여 두개의 뱅크를 시리얼하게 사용하고 있다.The multiplexer section 4c is an interleaving-related address path, and specifically, as shown in FIG. 3, four mega (22 bits) address lines are connected to input terminals of the three multiplexers 15, 16, and 17. Two banks are serially used using the bank selection address line A25.

한편, 종래 메모리 보드의 데이타 경로 구성은 제4도에 도시한 바와 같이 시스템 버스(4)와 메모리간의 인터페이스 신호를 담당하고 있는 부분으로 타이컴의 시스템 버스에 상응하게 드라이브/리시브(Drive/Receive)하는 알피(RP) 스탠다드 인터페이스(7)와, 연속된 메모리 액세스에 응답을 하기 위해 메모리 뱅크가 사용중인 경우에 임시로 저장할 수 있거나 또는 버스가 사용중인 경우에도 동일하게 동작하는 입력큐(8) 및 출력큐(9)와, 디램에서의 데이타를 기록/판독에 상응하게 데이타 경로를 제공해주는 입력버퍼(11) 및 출력버퍼(12)와, 상기 입력큐(8) 및 출력큐(9)와 상기 입력버퍼(11) 및 출력버퍼(12)를 제어하는 것으로 디램에서 사용되는 신호(RAS, CAS…)와 메모리의 전체 상태머신(State machine)을 제어하는 메모리 제어부(10)와, 디램이 장착되어 있는 부분으로 물리적으로 2개의 뱅크(32메가 바이트씩)(13,14)로 구성되어 있다.On the other hand, the data path configuration of the conventional memory board is a part that is responsible for the interface signal between the system bus 4 and the memory as shown in FIG. 4, and corresponds to the system bus of Tycom, Drive / Receive. An RP standard interface 7 and an input queue 8 that can be temporarily stored when a memory bank is in use to respond to successive memory accesses or behave the same when the bus is in use, and An output queue 9, an input buffer 11 and an output buffer 12 that provide data paths corresponding to writing / reading data on the DRAM, the input queue 8 and the output queue 9, and By controlling the input buffer 11 and the output buffer 12, the memory controller 10 for controlling the signals (RAS, CAS ...) used in the DRAM and the entire state machine of the memory, and the DRAM In part It is physically composed of two banks (each 32 megabytes) 13 and 14.

상기한 구성에 의해 입력큐(8)를 뱅크단위로 독립하여 설계하는 방법과 입력버퍼(11)를 후단에 레지스터를 별개로 두어 설계하는 방법을 수행한다.According to the above-described configuration, a method of designing the input queue 8 independently in bank units and a method of designing the input buffer 11 with a register separately at a rear end thereof are performed.

여기서, 상기 입력큐(8)를 뱅크단위로 독립하여 설계한 방법은 입력큐(8)에 로우팅(loading)할때 뱅크선택 어드레스 신호를 참조하여 각각 별개로 데이타를 저장하므로써 입력버퍼를 후단에 레지스터를 별개로 두어 설계하는 방법보다 성능상 잇점이 있으나, 선입선출(FIFO)되는 데이타를 두배로 두기 때문에 고가의 칩을 사용한다는 단점이 있다.In the method in which the input queue 8 is independently designed in bank units, the input buffer is stored at the rear end by storing data separately by referring to the bank selection address signal when the input queue 8 is loaded. There are performance advantages over designing the registers separately, but the disadvantage of using expensive chips is that they double the first-in first-out (FIFO) data.

그리고, 상기 입력버퍼(11)를 후단에 레지스터를 별개로 두어 설계하는 방법은 입력큐(8)를 공통으로 사용하는 점은 좋으나, 연속된 동일 뱅크 사용시 비록 다음 어드레스가 동일하지 않은 뱅크일지라도 이전의 데이타를 모두 서비스하고 난 후에 액세스한다는 이점이 있다.In addition, the method of designing the input buffer 11 with the registers at the rear end separately uses the input queue 8 in common. However, when using the same bank in succession, the previous buffer may be used even if the next address is not the same bank. The advantage is that all data is accessed after it has been serviced.

또한, 타이밍에 맞게 후단에서 래치를 사용해야 한다.In addition, a latch must be used at the rear end in accordance with the timing.

이와 같이 종래의 메모리는 2개의 뱅크로 구성되어 있으나, 기능적으로 하나의 모듈로 동작하게 구성되었다.Thus, the conventional memory is composed of two banks, but functionally configured to operate as one module.

따라서, 프로그램의 로칼리티가 존재하더라도 응답속도를 예를 들어, 연속된 어드레스라 하더라도(즉, 다른 뱅크를 사용할 수 있더라도) 단일의 메모리 제어부(DMC)로 구성되었기 때문에 시간적으로 거의 두배 가량 늦게 응답을 하여 전체적인 시스템의 성능이 저하되는 문제점이 있었다.Therefore, even if the locality of the program exists, the response speed is approximately twice as late in time because it is composed of a single memory controller (DMC) even if it is a continuous address (i.e., a different bank can be used). There was a problem that the performance of the overall system is degraded.

즉, 다른 뱅크의 정보가 큐에 존재하더라도 이전의 데이타가 완전히 서비스될 때까지 대기하고 있다가 데이타가 완전히 해결되고 나서 큐에 있는 것이 서비스된 문제점이 있었다.That is, even if information of another bank exists in the queue, there is a problem in that it waits until the previous data is completely serviced and then remains in the queue after the data is completely resolved.

본 발명은 상기 문제점을 해결하기 위해 메모리 보드내에 인터리빙을 구현함으로써 시스템의 성능을 향상시키기 위한 멀티프로세서 시스템에서 주기억장치의 보드내 인터리빙장치 및 방법을 제공하는데 목적이 있다.An object of the present invention is to provide an on-board interleaving apparatus and method of a main memory in a multiprocessor system for improving performance of a system by implementing interleaving in a memory board to solve the above problems.

상기 목적을 달성하기 위한 본 발명을 첨부된 도면에 의거하여 상세히 설명한다.The present invention for achieving the above object will be described in detail with reference to the accompanying drawings.

본 발명의 데이타 경로 구성은 제5도에 도시한 바와 같이 시스템 버스(4)에 연결된 알피(RP) 스탠다드인터페이스(17)에서의 입출력신호에 따라 입력큐(18)에 임시로 저장된 해당 어드레스 및 데이타를 제1 및 제2뱅크(23,24)에 저장하기 위해 상기 제1 및 제2뱅크(23,24) 사용중인 경우나 또는 시스템 버스(4) 사용중인 경우에 상기 제1 및 제2뱅크(23,24) 각각에 상응한 데이타 경로가 되는 제1 및 제2입력버퍼(21a,21b)와, 상기 제1 및 제2뱅크(23,24)에서 판독한 해당 어드레스 및 데이타를 출력큐(19)를 통해 상기 알피스탠다드 인터페이스(17)에 출력하기 위해 각각의 임시저장용 데이타 경로가 되는 제1 및 제2출력버퍼(22a,22b)와, 상기 제1뱅크(23)에서 입출력되는 해당 어드레스 및 데이타에 상응한 경로인 제1입력버퍼(21a) 또는 제1출력버퍼(22a)를 선택적으로 제어하는 제1메모리 제어부(20a)와 상기 제2뱅크(24)에서 입출력 되는 해당 어드레스 및 데이타에 상응하게 상기 제2입력버퍼(21b) 또는 제2출력버퍼(22b)를 선택적으로 제어하는 제2메모리 제어부(20b)로 구성된다.In the data path configuration of the present invention, as shown in FIG. 5, the corresponding address and data temporarily stored in the input queue 18 in accordance with the input / output signal of the RP standard interface 17 connected to the system bus 4 are shown. To store the first and second banks 23 and 24 in the first and second banks 23 and 24 or when the system bus 4 is in use. The first and second input buffers 21a and 21b serving as data paths corresponding to the respective data paths 23 and 24 and corresponding addresses and data read out from the first and second banks 23 and 24 are output queues 19. The first and second output buffers 22a and 22b serving as temporary storage data paths for output to the AlpS standard interface 17, corresponding addresses inputted and outputted from the first bank 23, and First to selectively control the first input buffer 21a or the first output buffer 22a, which is a path corresponding to data. Second memory controller 20b for selectively controlling the second input buffer 21b or the second output buffer 22b in correspondence with the corresponding address and data input and output from the memory controller 20a and the second bank 24. It is composed of

상기에서 제1 및 제2메모리 제어부(20a,20b)는 어느 한 순간에 상기 두개의 뱅크(23,24)를 동시에 액세스 할 수 있도록 하기 위한 독립적인 메모리 제어부로서 동작한다.The first and second memory controllers 20a and 20b operate as independent memory controllers to simultaneously access the two banks 23 and 24 at any one time.

상기 데이타 경로에 의해 데이타를 일정 장소에 저장하기 위한 인터리빙에 관련된 어드레스 경로는 제6도에 도시한 바와 같이, 3개의 멀티플렉스(25,26,27)의 입력단에 어드레스를 각각 입력하고, 상기 입력된 어드레스들중 각 멀티플렉서를 통해 각각의 메모리 어드레스(mem_a2, mem_a1, mem_a0)를 선택하는 경로로 구성되고, 뱅크선택용 어드레스 라인은 A3을 사용한다.The address path related to interleaving for storing data in a certain place by the data path is inputted to the input terminals of the three multiplexes 25, 26 and 27, respectively, as shown in FIG. It consists of a path for selecting each memory address (mem_a2, mem_a1, mem_a0) through each of the multiplexers, and the bank selection address line uses A3.

종래 입력큐(8)를 뱅크단위로 독립하여 설계한 것과는 상이하게 본 발명에서는 제7도의 (a)에 도시한 바와 같은 압력큐를 뱅크수에 상응하게 설계하는 방법과 제7도의 (b)에 도시한 바와 같은 입력큐를 공유하는 방법에 대하여 설명한다.Unlike the conventional design of the input queue 8 independently in bank units, in the present invention, a method of designing a pressure cue as shown in FIG. 7A according to the number of banks and FIG. A method of sharing an input queue as shown in the drawing will be described.

먼저, 입력큐(18)를 뱅크수에 상응하게 설계하는 방법은 시스템 버스(4)로부터 어드레스를 래치하는 단계(S1)와, 상기 어드레스가 자기 메모리 보드에 적합한 것인지를 디코딩하여 판단하는 보드선택단계(S2)와, 상기 보드선택관계 (S2)에 의해 자기 메모리 보드에 유효한 정보일 경우 일측뱅크(제1뱅크)와 타측뱅크(제2뱅크)중 어느 뱅크가 선택되었는가를 판단하는 뱅크선택판단단계(S3)와, 상기 뱅크선택판단단계(S3)에 의해 일측 뱅크가 선택되었을 경우 해당 뱅크의 입력큐에 해당 어드레스 및 데이타를 로우딩하는 단계(S4)와, 제1메모리 제어부(20a)의 상태 머신이 동작하도록 하는 단계(S5)와, 상기 일측뱅크의 디램을 억세스하도록 데이타를 보내는(즉, 데이타 서비스) 단계(S6)와, 상기 뱅크선택판단단계(S3)에 의해 타측뱅크가 선택되었을 경우 해당 뱅크의 입력큐에 해당 어드레스 및 데이타를 로우딩하는 단계(S7)와, 제2메모리 제어부(20b)의 상태 머신이 동작하도록 하는 단계(S8)와, 상기 타측뱅크의 디램을 액세스하도록 데이타를 보내는(즉, 데이타 서비스) 단계(S9)로 이루어진다.First, the method of designing the input queue 18 corresponding to the number of banks includes the steps of latching an address from the system bus 4 (S1) and a board selection step of decoding and determining whether the address is suitable for the magnetic memory board. A bank selection determination step of determining which bank is selected from one bank (first bank) and the other bank (second bank) when the information is valid for the magnetic memory board according to the board selection relation (S2) and (S2). (S3), when the one bank is selected by the bank selection determining step (S3), loading the address and data into the input queue of the bank (S4), and the state of the first memory controller 20a. When the other bank is selected by the step S5 for allowing the machine to operate, sending data to access the DRAM of the one bank (i.e., data service), and the bank selection judging step S3. In that bank Loading a corresponding address and data into an input queue (S7), operating a state machine of the second memory controller 20b (S8), and sending data to access the DRAM of the other bank (i.e., , Data service) step S9.

이와 같은 단계들에 의한 동작은 먼저 시스템 버스(4)로부터 어드레스를 래치하고서, 이 어드레스에 대하여 자기 메모리 보드에 적합한 것인지 디코딩하고, 만약 메모리 보드에 유효한 정보경우 어느 뱅크가 선택되었는지를 확인한다.The operation by these steps first latches an address from the system bus 4, decodes this address as appropriate for the magnetic memory board, and identifies which bank is selected if valid information is available for the memory board.

그리고, 해당 뱅크의 입력큐에 해당 어드레스 및 관련 정보를 로우딩하고 메모리 제어부의 해당 머신이 동작하도록 한 다음 해당 뱅크의 디램을 액세스한다.Then, the corresponding address and related information are loaded in the input queue of the corresponding bank, the corresponding machine of the memory controller is operated, and then the DRAM of the corresponding bank is accessed.

다음에, 입력큐를 공유하는 방법은 시스템 버스(4)로부터 어드레스를 래치하는 단계(S10)와, 상기 어드레스가 자기 메모리 보드에 적합한 것인지를 디코딩하여 판단하는 보드선택단계(S11)와, 상기 보드선택단계(S11)에 의해 자기 메모리 보드에 유 효한 정보일 경우 입력큐에 로우딩하는 단계(S12)와, 상기 보드선택단계(S11)에 의해 자기 메모리 보드에 유효한 정보일 경우 일측뱅크 및 타측뱅크중 어느 뱅크가 선택되었는가를 판단하는 뱅크선택판단단계(S13)와, 상기 뱅크선택판단단계(S13)에 의해 일측 뱅크가 선택될 경우 해당 뱅크가 사용중인지 아닌지를 확인하는 단계(S14)와, 상기 확인단계(S14)에 의해 일측 뱅크가 사용중이 아닌 경우 제1메모리 제어부(20a)의 상태 머신이 동작하도록 하는 단계(S15)와, 상기 일측뱅크의 디램을 액세스하도록 데이타를 보내는(즉, 데이타 서비스)단계(S16)와, 상기 뱅크선택판단단계(S13)에 의해 타측 뱅크가 선택될 경우 해당 뱅크가 사용중인지 아닌지를 확인하는 단계(S17)와, 상기 확인단계(S18)와, 상기 타측뱅크의 디램을 액세스하도록 데이타를 보내는(즉, 데이타 서비스)단계(S19)로 이루어진다.Next, the method of sharing the input queue includes the steps of latching an address from the system bus (S10), a board selection step (S11) for decoding and determining whether the address is suitable for a magnetic memory board, and the board. Loading information into the input queue when the information is valid for the magnetic memory board by the selecting step S11, and when the information is valid for the magnetic memory board by the board selecting step S11, one bank and the other bank. A bank selection determination step (S13) of determining which bank is selected, and a step (S14) of checking whether a corresponding bank is in use when one bank is selected by the bank selection determination step (S13), and A step S15 of operating the state machine of the first memory controller 20a when the one bank is not in use by the checking step S14; and sending data to access the DRAM of the one bank. (I.e., data service) step (S16), and when the other bank is selected by the bank selection determination step (S13), checking whether or not the corresponding bank is in use (S17), and checking step (S18). And sending data (ie, data service) to access the DRAM of the other bank (S19).

이와 같은 단계들에 의한 동작은 먼저 시스템 버스(4)로부터 어드레스 및 관련정보를 래치하고서, 상기 입력큐를 뱅크수에 상응하게 설계하는 방법과 동일하게 어드레스 디코딩 후에 자기 메모리에 유효한 경우 바로 입력큐(18)에 로우딩한다.The operation by the above steps is performed by first latching the address and related information from the system bus 4, and immediately after the address decoding is effective in the magnetic memory in the same way as the method of designing the input queue corresponding to the number of banks. To 18).

그리고, 어느 뱅크정보가 선택되었는지를 검색한 후 해당 뱅크가 사용중인지 아닌지를(상태 머신확인) 확인한후, 사용중이 아닐 경우 상기 해당 뱅크의 디램을 액세스하도록 데이타를 보낸다.After retrieving which bank information is selected, it checks whether the corresponding bank is in use or not (state machine check), and sends data to access the DRAM of the corresponding bank when not in use.

이때, 뱅크단위로 버퍼 드라이브 전단에 플립플롭으로 래치하여 데이타 서비스하는 동안에 유효하게 한다.At this time, a flip-flop is latched in front of the buffer drive in bank units to make it valid during data service.

또한, 상기 두가지 방법은 공통으로 출력버퍼를 공유할 수 있고, 보스 사이클로 한 사이클 차이가 있더라도 데이타 드라이브하는 시점도 보통의 경우에는 한 사이클 차이가 나므로 출력큐(19)를 공유하는 것이 가능하다.In addition, the above two methods can share the output buffer in common, and even if there is one cycle difference in the boss cycle, the data drive time can be shared by the output queue 19 because the difference in time is usually one cycle.

이상에서와 같이 본 발명은 프로그램의 로칼리티가 있는 경우에 큰 효과를 발휘할 수 있는 것이 인터리빙이지만, 실제로 현재 타이컴의 경우에는 중앙처리장치가 버스의 대역폭보다 2배의 크기로 설계되어 있으므로(중앙처리장치의 캐쉬(cachen)라인 크기) 반드시 중앙처리장치가 메모리를 액세스할 경우 연속적인 어드레싱을 하게 된다.As described above, in the present invention, interleaving can have a great effect when there is locality of a program. However, in the case of Tycom, the CPU is designed to be twice the bandwidth of the bus. Cache line size of the processing unit. Whenever the central processing unit accesses the memory, there is continuous addressing.

따라서, 현재의 시스템에서 메모리를 한 장 장착했을 경우에 비하여 약 2배에 가까운 메모리 액세스 타임향상(데이타 서비스 타임)을 기대할 수 있는 효과가 있다.Therefore, the memory access time improvement (data service time) that is about twice as much as when a single memory is installed in the current system can be expected.

Claims (6)

시스템 버스(4)에 연결된 알피(RP) 스탭다드 인터페이스(17)에서의 입출력신호에 따라 입력큐(18)에 임시로 저장된 해당 어드레스 및 데이타를 제1 및 제2뱅크(23,24)에 저장하기 위해 상기 제1 및 제2뱅크(23,24) 사용중인 경우나 또는 상기 시스템 버스(4) 사용중인 경우에 상기 제1 및 제2뱅크(23,24) 각각에 상응한 데이타 경로가 되는 제1 및 제2입력버퍼(21a,21b)와, 상기 제1 및 제2뱅크(23,24)에서 판독한 해당 어드레스 및 데이타를 출력큐(19)를 통해 상기 알피 스탭다드 인터페이스(17)로 출력하기 위해 각각의 임시 저장용 데이타 경록 되는 제1 및 제2출력버퍼(22a,22b)와, 상기 제1뱅크(23)에서 입출력되는 해당 어드레스 및 데이타에 상응한 경로인 제1입력버퍼(21a) 또는 제1출력버퍼(22a)를 선택적으로 제어하는 제1메모리 제어부(20a)와, 상기 제2뱅크(24)에서 입출력되는 해당 어드레스 및 데이타에 상응하게 상기 제1입력버퍼(21b) 또는 제2출력버퍼(22b)를 선택적으로 제어하는 제2메모리 제어부(20b)로 구성된 멀티프로세서 시스템에서 주기억장치의 보드내 인터리빙장치.The corresponding addresses and data temporarily stored in the input queue 18 are stored in the first and second banks 23 and 24 according to an input / output signal from the Alp (RP) stepdard interface 17 connected to the system bus 4. For example, when the first and second banks 23 and 24 are in use or when the system bus 4 is in use, a data path corresponding to each of the first and second banks 23 and 24 is used. Outputs the first and second input buffers 21a and 21b and the corresponding addresses and data read from the first and second banks 23 and 24 to the Alpstad interface 17 through an output queue 19. The first and second output buffers 22a and 22b, each of which are stored temporarily for storing data, and the first input buffer 21a which is a path corresponding to the corresponding address and data input and output from the first bank 23, respectively. Alternatively, the first memory control unit 20a selectively controls the first output buffer 22a and input / output the second bank 24. The address and data in correspondence to the first input buffer (21b) or the second output buffer, the second memory control section (20b) within the interleaved unit of the main memory in a multiprocessor system consisting of a board for selectively controlling the (22b). 제1항에 있어서, 상기 제1메모리 제어부(20a)는 어느 한 어드레스 라임(A3)으로 상기 제1뱅크(23)를 선택하는 것을 특징으로 하는 멀티프로세서 시스템에서 주기억장치의 보드내 인터리빙장치.2. The on-board interleaving apparatus of the main memory device according to claim 1, wherein the first memory controller (20a) selects the first bank (23) as one address lime (A3). 제1항에 있어서, 상기 제1메모리 제어부(20b)는 어느 한 어드레스 라인(A3)으로 상기 제2뱅크(24)를 선택하는 것을 특징으로 한느 멀티프로세서 시스템에서 주기억장치의 보드내 인터리빙장치.2. The on-board interleaving apparatus of a main memory device according to claim 1, wherein said first memory control section (20b) selects said second bank (24) by either address line (A3). 제1항에 있어서, 상기 제1 및 제2메모리 제어부(20a,20b)는 어느 한 순간에 상기 제1 및 제2뱅크(23,24)를 동시에 접근하기 위해 독립적으로 구성된 것을 특징으로 하는 멀티프로세서 시스템에서 주기억장치의 보드내 인터리빙장치.The multiprocessor of claim 1, wherein the first and second memory controllers 20a and 20b are independently configured to simultaneously access the first and second banks 23 and 24 at any one time. In-board interleaving of main memory in the system. 입력큐(18)를 뱅크수에 상응하게 설계한 경우에 시스템 버스(4)로부터 어드레스를 래치하는 단계(S1)와, 상기 어드레스가 자기 메모리 보드에 적합한 것인지를 디코딩하여 판단하는 보드선택단계(S2)와, 상기 보드선택단계 (S2)에 의해 자기 메모리 보드에 유효한 정보일 경우 일측뱅크와 타측뱅크중 어느 뱅크가 선택되었는가를 판단하는 뱅크선택판단단계(S3)와, 상기 뱅크선택판단단계(S3)에 의해 일측 뱅크가 선택되었을 경우 해당 뱅크의 입력큐에 해당 어드레스 및 데이타를 로우딩하는 단계(S4)와, 제1메모리 제어부(20a)의 상태 머신이 동작하도록 하는 단계(S5)와, 상기 일측뱅크의 디램을 억세스하도록 데이타를 보내는 단계(S6)와, 상기 뱅크선택판단단계(S3)에 의해 타측 뱅크가 선택되었을 경우 해당 뱅크의 입력큐에 해당 어드레스 및 데이타를 로우딩하는 단계(S7)와 제2메모리 제어부(20b)의 상태 머신이 동작하도록 하는 단계(S8)와 상기 타측뱅크의 디램을 액세스하도록 데이타를 보내는 단계(S9)로 이루어진 것을 특징으로 하는 멀티프로세서 시스템에서 주기억장치의 보드내 인터리빙방법.When the input queue 18 is designed to correspond to the number of banks, a step of latching an address from the system bus 4 (S1), and a board selection step of decoding and determining whether the address is suitable for the magnetic memory board (S2). And a bank selection determining step S3 for determining which bank is selected from one bank and the other bank when the information is valid for the magnetic memory board by the board selection step S2, and the bank selection determining step S3. (S4) loading a corresponding address and data to an input queue of the corresponding bank when one bank is selected by the step S), and operating the state machine of the first memory controller 20a (S5), and Sending data to access the DRAM of one bank (S6), and when the other bank is selected by the bank selection determination step (S3), the corresponding address and data is loaded in the input queue of the bank. In the multi-processor system comprising the step (S7) and the step (S8) to operate the state machine of the second memory controller 20b and the step (S9) of sending data to access the DRAM of the other bank On-board interleaving method of main memory. 입력큐를 공유하는 경우에 시스템 버스로부터 어드레스를 래치하는 단계(S10)와, 상기 어드레스가 자기 메모리 보드에 적합한 것인지를 디코딩하여 판단하는 보드선택단계(S11)와, 상기 보드선택단계(S11)에 의해 자기 메모리 보드에 유효한 정보일 경우 입력큐에 로우딩하는 단계(S12)와, 상기 보드선택단계(S11)에 의해 자기 메모리 보드에 유효한 정보일 경우 일측뱅크 및 타측뱅크중 어느 뱅크가 선택되었는가를 판단하는 뱅크선택판단단계(S13)와, 상기 뱅크선택판단단계(S13)에 의해 일측뱅크가 선택될 경우 해당 뱅크가 사용중인지 아닌지를 확인하는 단계(S14)와, 상기 확인단계(S14)에 의해 일측 뱅크가 사용중이 아닐 경우 제1메모리 제어부(20a)의 상태 머신이 동작하도록 하는 단계(S15)와, 상기 일측뱅크의 디램을 액세스하도록 데이타를 보내는 단계(S16)와, 상기 뱅크선택판단단계(S13)에 의해 타측 뱅크가 선택될 경우 해당 뱅크가 사용중인지 아닌지를 확인하는 단계(S17)와, 상기 확인단계(S17)에 의해 타측 뱅크가 사용중이 아닐 경우 제2메모리 제어부(20b)의 상태머신이 동작하도록 하는 단계(S18)와, 상기 타측뱅크의 디램을 액세스하도록 데이타를 보내는 단계(S19)로 이루어진 것을 특징으로 하는 멀티프로세서 시스템에서 주기억장치의 보드내 인터리빙방법.When the input queue is shared, latching an address from the system bus (S10), a board selection step (S11) for decoding and determining whether the address is suitable for a magnetic memory board, and the board selection step (S11). If it is valid information on the magnetic memory board by the step of loading to the input queue (S12), and if the information is valid on the magnetic memory board by the board selection step (S11) which bank of the one bank and the other bank is selected A bank selection determination step (S13) for judging, a step (S14) of checking whether a corresponding bank is in use when a bank is selected by the bank selection determination step (S13), and the checking step (S14). When the one bank is not in use, allowing the state machine of the first memory controller 20a to operate (S15), and sending data to access the DRAM of the one bank (S16). If the other bank is selected by the bank selection judging step S13, checking whether the corresponding bank is in use (S17); and if the other bank is not in use by the checking step S17, the second memory. And a step (S18) of operating the state machine of the control unit (20b) and sending data to access the DRAM of the other bank (S19).
KR1019940027766A 1994-10-27 1994-10-27 On-board interleaving apparatus and method of main memory on multi processor system KR970010367B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019940027766A KR970010367B1 (en) 1994-10-27 1994-10-27 On-board interleaving apparatus and method of main memory on multi processor system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019940027766A KR970010367B1 (en) 1994-10-27 1994-10-27 On-board interleaving apparatus and method of main memory on multi processor system

Publications (2)

Publication Number Publication Date
KR960015247A KR960015247A (en) 1996-05-22
KR970010367B1 true KR970010367B1 (en) 1997-06-25

Family

ID=19396202

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019940027766A KR970010367B1 (en) 1994-10-27 1994-10-27 On-board interleaving apparatus and method of main memory on multi processor system

Country Status (1)

Country Link
KR (1) KR970010367B1 (en)

Also Published As

Publication number Publication date
KR960015247A (en) 1996-05-22

Similar Documents

Publication Publication Date Title
US5581734A (en) Multiprocessor system with shared cache and data input/output circuitry for transferring data amount greater than system bus capacity
US5226134A (en) Data processing system including a memory controller for direct or interleave memory accessing
US5014195A (en) Configurable set associative cache with decoded data element enable lines
US5848432A (en) Data processor with variable types of cache memories
US5586294A (en) Method for increased performance from a memory stream buffer by eliminating read-modify-write streams from history buffer
US5526508A (en) Cache line replacing system for simultaneously storing data into read and write buffers having multiplexer which controls by counter value for bypassing read buffer
JP2509766B2 (en) Cache memory exchange protocol
GB2149158A (en) Memory management system
US20020144049A1 (en) Multiple mode memory module
US6157980A (en) Cache directory addressing scheme for variable cache sizes
US6223253B1 (en) Word selection logic to implement an 80 or 96-bit cache SRAM
US5307469A (en) Multiple mode memory module
US6381686B1 (en) Parallel processor comprising multiple sub-banks to which access requests are bypassed from a request queue when corresponding page faults are generated
KR20060010849A (en) Memory device having different burst order addressing for read and write operations
EP0509994B1 (en) Centralized reference and change table for a multiprocessor virtual memory system
EP0803818A2 (en) Single-cycle multi-accessible interleaved cache
US5640531A (en) Enhanced computer operational system using auxiliary mini-cache for enhancement to general cache
US5537609A (en) Mini cache operational module for enhancement to general cache
US5901298A (en) Method for utilizing a single multiplex address bus between DRAM, SRAM and ROM
US6704820B1 (en) Unified cache port consolidation
US6912173B2 (en) Method and system for fast memory access
US7536516B2 (en) Shared memory device
KR970010367B1 (en) On-board interleaving apparatus and method of main memory on multi processor system
US6349370B1 (en) Multiple bus shared memory parallel processor and processing method
EP1596280A1 (en) Pseudo register file write ports

Legal Events

Date Code Title Description
A201 Request for examination
G160 Decision to publish patent application
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20020926

Year of fee payment: 6

LAPS Lapse due to unpaid annual fee