KR100564560B1 - High bandwidth memory controller using synchronous dynamic random access memory - Google Patents

High bandwidth memory controller using synchronous dynamic random access memory Download PDF

Info

Publication number
KR100564560B1
KR100564560B1 KR1020000000967A KR20000000967A KR100564560B1 KR 100564560 B1 KR100564560 B1 KR 100564560B1 KR 1020000000967 A KR1020000000967 A KR 1020000000967A KR 20000000967 A KR20000000967 A KR 20000000967A KR 100564560 B1 KR100564560 B1 KR 100564560B1
Authority
KR
South Korea
Prior art keywords
address
data
bank
memory
ras
Prior art date
Application number
KR1020000000967A
Other languages
Korean (ko)
Other versions
KR20010068848A (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 KR1020000000967A priority Critical patent/KR100564560B1/en
Publication of KR20010068848A publication Critical patent/KR20010068848A/en
Application granted granted Critical
Publication of KR100564560B1 publication Critical patent/KR100564560B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H01ELECTRIC ELEMENTS
    • H01RELECTRICALLY-CONDUCTIVE CONNECTIONS; STRUCTURAL ASSOCIATIONS OF A PLURALITY OF MUTUALLY-INSULATED ELECTRICAL CONNECTING ELEMENTS; COUPLING DEVICES; CURRENT COLLECTORS
    • H01R24/00Two-part coupling devices, or either of their cooperating parts, characterised by their overall structure
    • H01R24/76Two-part coupling devices, or either of their cooperating parts, characterised by their overall structure with sockets, clips or analogous contacts and secured to apparatus or structure, e.g. to a wall
    • H01R24/78Two-part coupling devices, or either of their cooperating parts, characterised by their overall structure with sockets, clips or analogous contacts and secured to apparatus or structure, e.g. to a wall with additional earth or shield contacts
    • HELECTRICITY
    • H01ELECTRIC ELEMENTS
    • H01RELECTRICALLY-CONDUCTIVE CONNECTIONS; STRUCTURAL ASSOCIATIONS OF A PLURALITY OF MUTUALLY-INSULATED ELECTRICAL CONNECTING ELEMENTS; COUPLING DEVICES; CURRENT COLLECTORS
    • H01R13/00Details of coupling devices of the kinds covered by groups H01R12/70 or H01R24/00 - H01R33/00
    • H01R13/02Contact members
    • H01R13/10Sockets for co-operation with pins or blades
    • HELECTRICITY
    • H01ELECTRIC ELEMENTS
    • H01RELECTRICALLY-CONDUCTIVE CONNECTIONS; STRUCTURAL ASSOCIATIONS OF A PLURALITY OF MUTUALLY-INSULATED ELECTRICAL CONNECTING ELEMENTS; COUPLING DEVICES; CURRENT COLLECTORS
    • H01R24/00Two-part coupling devices, or either of their cooperating parts, characterised by their overall structure
    • H01R24/28Coupling parts carrying pins, blades or analogous contacts and secured only to wire or cable
    • HELECTRICITY
    • H01ELECTRIC ELEMENTS
    • H01RELECTRICALLY-CONDUCTIVE CONNECTIONS; STRUCTURAL ASSOCIATIONS OF A PLURALITY OF MUTUALLY-INSULATED ELECTRICAL CONNECTING ELEMENTS; COUPLING DEVICES; CURRENT COLLECTORS
    • H01R2103/00Two poles

Abstract

동기식 디램을 이용한 고속 메모리 컨트롤러가 개시된다. 본 발명에 따른 동기식 디램을 이용한 고속 메모리 컨트롤러는, 다수의 마스터 장치들이 소정의 메모리 장치를 액세스하여 원하는 데이타를 기입 또는 독출하는 것을 제어하는 메모리 액세스 시스템의 메모리 컨트롤러에 있어서, 마스터 장치들로부터 인가되는 메모리 액세스 어드레스와 최근에 액세스된 어드레스를 비교하여 서로 동일한가를 판단하고, 판단된 결과에 응답하여 데이타 액세스를 제어하는 제어 경로 및 내부에 소정의 버퍼를 포함하며, 제어 경로에서 판단된 결과에 응답하여 버퍼에 저장된 데이타를 다수의 마스터 장치로 출력하거나, 메모리 장치를 액세스하여 새로운 데이타를 로드하는 데이타 경로를 구비하고, 본 발명에 따르면 SDRAM을 액세스하는 마스터 장치들이 버스트 길이 단위로 액세스하기 때문에 액세스 시간을 줄일 수 있고, 메모리 컨트롤러 내부에 버스트 길이 단위의 데이타를 버퍼링하고 있으므로 버스트 리드 외의 싱글 리드인 경우에도 데이타 액세스 속도를 빠르게 할 수 있다는 효과가 있다. 또한, 메모리 컨트롤러 내부에 구비된 뱅크 오픈 레지스터를 이용함으로써 데이타 액세스 속도를 향상시킬 수 있다는 효과가 있다. A high speed memory controller using a synchronous DRAM is disclosed. A high speed memory controller using a synchronous DRAM according to the present invention is a memory controller of a memory access system that controls a plurality of master devices to access a predetermined memory device to write or read desired data, and is applied from the master devices. The memory access address is compared with the recently accessed address to determine whether they are the same, and includes a control path for controlling data access and a predetermined buffer in response to the determined result, and responds to the result determined in the control path. A data path for outputting data stored in a buffer to a plurality of master devices, or for accessing a memory device to load new data, and according to the present invention, because the master devices accessing the SDRAM are accessed in burst length units. Can reduce Since the data of the burst length unit is buffered inside the memory controller, the data access speed can be increased even in the case of a single read other than the burst read. In addition, the data access speed can be improved by using the bank open register provided in the memory controller.

Description

동기식 디램을 이용한 고속 메모리 컨트롤러{High bandwidth memory controller using synchronous dynamic random access memory}High bandwidth memory controller using synchronous dynamic random access memory

도 1은 메모리 액세스 시스템을 나타내는 개략적인 블럭도로서, 본 발명의 실시예에 따른 메모리 컨트롤러가 적용된다.1 is a schematic block diagram illustrating a memory access system, in which a memory controller according to an embodiment of the present invention is applied.

도 2는 본 발명의 실시예에 따른 고속 메모리 컨트롤러를 나타내는 블럭도이다.2 is a block diagram illustrating a high speed memory controller according to an exemplary embodiment of the present invention.

도 3은 도 2에 도시된 장치의 제어 경로에 구비되는 뱅크 히트/미스 판별부를 설명하기 위한 상세한 회로도이다.FIG. 3 is a detailed circuit diagram illustrating a bank hit / miss determination unit included in the control path of the apparatus illustrated in FIG. 2.

도 4는 도 2에 도시된 장치의 데이타 경로를 설명하기 위한 상세한 블럭도 이다.4 is a detailed block diagram illustrating a data path of the apparatus shown in FIG. 2.

본 발명은 메모리 액세스 시스템에 관한 것으로서, 특히, 동기식 디램을 이용한 고속 메모리 컨트롤러에 관한 것이다. The present invention relates to a memory access system, and more particularly, to a high speed memory controller using a synchronous DRAM.

현재에는 프로세서의 속도가 메모리의 속도보다 빨라지는 추세에 있다. 따라서, 메모리를 액세스하는 시스템의 성능은 프로세서의 속도에 의해서 결정된다기 보다는 오히려 메모리의 속도에 의해서 결정된다. 그러나, 고속 메모리를 사용한다는 것은 가격 면에서 많은 부담이 된다. 따라서, 이러한 속도 문제를 해결하기 위해, 시스템 측면에서는 고가의 멀티 레벨의 고속 캐쉬 메모리를 두고, 상대적으로 가격이 저렴한 메모리를 메인 메모리로 사용한다. 즉, 이와 같이, 가격 대비 시스템의 성능을 높이기 위한 노력이 이루어지고 있다. 또한, 메모리 측면에서는 가격이 저렴하면서 높은 속도(bandwidth)를 낼 수 있는 다양한 메모리를 제공하는 추세이다. 여기에서, 다양한 메모리라는 것은 예를 들어 동기식 디램(SDRAM), 램버스 디램(RDRAM), 그래픽 데이타 램(GDRAM) 또는 이중 속도 디램(Double Rate DRAM) 등을 들 수 있다. 즉, 시스템 측면과 메모리 측면이 모두 고려되어야만, 가격 대비 성능 비가 우수한 시스템을 구현할 수 있다. Currently, the speed of the processor is faster than the speed of memory. Thus, the performance of a system that accesses memory is determined by the speed of the memory rather than by the speed of the processor. However, the use of high speed memory is very costly. Therefore, in order to solve this speed problem, the system side uses expensive multi-level fast cache memory and uses relatively low cost memory as main memory. In other words, efforts have been made to increase the performance of the system compared to the price. In addition, in terms of memory, there is a trend to provide a variety of memory that can be cheap and high bandwidth (bandwidth). Here, the various memories may be, for example, synchronous DRAM (SDRAM), Rambus DRAM (RDRAM), graphics data RAM (GDRAM), or double rate DRAM. In other words, both the system side and the memory side must be considered, so that a system having excellent cost-performance ratio can be implemented.

또한, 현재의 시스템 설계 기술은 마이크로프로세서, 메모리 및 메모리 컨트롤러등이 하나의 칩으로 내장되거나, 그 일부의 구성 요소들이 점차 하나의 칩으로 내장되는 추세에 있다. 이러한 경우에, 마이크로프로세서 측면에서는 메모리의 데이타를 처리하는 메모리 컨트롤러를 어떻게 구현하는지가 시스템 성능에 많은 영향을 줄 수 있다. 따라서, 가격에 따른 성능 비가 우수한 시스템을 설계하기 위해서는 보다 효율적인 방식으로 메모리 컨트롤러를 구현하는 것이 요구된다.In addition, current system design technology tends to include a microprocessor, a memory, a memory controller, and the like on one chip, or some components thereof on a single chip. In this case, on the microprocessor side, how to implement a memory controller that processes data in memory can greatly affect system performance. Therefore, in order to design a system having a good performance ratio based on price, it is required to implement a memory controller in a more efficient manner.

본 발명이 이루고자하는 기술적 과제는, 메모리 액세스 시스템에서 동기식 디램을 이용하여 메모리 액세스 속도를 빠르게 할 수 있는, 동기식 디램을 이용한 고속 메모리 컨트롤러를 제공하는데 있다. An object of the present invention is to provide a high speed memory controller using a synchronous DRAM, which can speed up a memory access using a synchronous DRAM in a memory access system.

상기 과제를 이루기위해, 본 발명에 따른 동기식 디램을 이용한 고속 메모리 컨트롤러는, 다수의 마스터 장치들이 소정의 메모리 장치를 액세스하여 원하는 데이타를 기입 또는 독출하는 것을 제어하는 메모리 액세스 시스템의 메모리 컨트롤러에 있어서, 마스터 장치들로부터 인가되는 메모리 액세스 어드레스와 최근에 액세스된 어드레스를 비교하여 서로 동일한가를 판단하고, 판단된 결과에 응답하여 데이타 액세스를 제어하는 제어 경로 및 내부에 소정의 버퍼를 포함하며, 제어 경로에서 판단된 결과에 응답하여 버퍼에 저장된 데이타를 다수의 마스터 장치로 출력하거나, 메모리 장치를 액세스하여 새로운 데이타를 로드하는 데이타 경로로 구성되고, 메모리 장치는 동기식 디램으로 구현되는 것이 바람직하다. In order to achieve the above object, a high-speed memory controller using a synchronous DRAM according to the present invention is a memory controller of a memory access system that controls a plurality of master devices to access a predetermined memory device to write or read desired data And comparing a memory access address applied from master devices with a recently accessed address to determine whether they are identical to each other, and including a control path for controlling data access in response to the determined result, and a predetermined buffer therein. In response to the result determined by the output data stored in the buffer to a plurality of master devices, or a data path for loading the new data by accessing the memory device, the memory device is preferably implemented as a synchronous DRAM.

이하, 본 발명에 따른 동기식 디램을 이용한 고속 메모리 컨트롤러에 관하여 첨부된 도면을 참조하여 다음과 같이 설명한다. Hereinafter, a high speed memory controller using a synchronous DRAM according to the present invention will be described with reference to the accompanying drawings.

도 1은 메모리 액세스 시스템을 나타내는 개략적인 블럭도로서, 본 발명의 실시예에 따른 메모리 컨트롤러가 적용된다. 도 1을 참조하면, 메모리 액세스 시스템은 중앙 처리 장치(CPU)(10), 직접 메모리 액세스 장치(DMA)(14), 캐쉬 메모리(12)들과 같은 마스터 장치, 그 밖의 다른 마스터 장치(16), 메모리 컨트롤러(18) 및 동기식 디램(Synchronous Dynamic Random Access Memory:이하, SDRAM이라 함)(19)을 포함한다. 1 is a schematic block diagram illustrating a memory access system, in which a memory controller according to an embodiment of the present invention is applied. Referring to FIG. 1, a memory access system includes a central processing unit (CPU) 10, a direct memory access unit (DMA) 14, a master device such as cache memories 12, and other master devices 16. , A memory controller 18 and a synchronous DRAM (hereinafter referred to as SDRAM) 19.

도 1에 도시된 메모리 액세스 시스템에서 CPU(10), 캐쉬 메모리(12), DMA(14) 및 다른 마스터 장치(16)는 메모리 컨트롤러(18)를 통하여 SDRAM(19)을 액 세스하는 마스터 장치로서의 역할을 한다. 도 1의 참조 부호 15는 각각의 마스터 장치들과 메모리 컨트롤러(18) 사이에서 처리되는 데이타들의 전송 라인이다. 본 발명에서 각각의 마스터 장치들은 SDRAM(19)을 액세스할 때, 메모리 컨트롤러 (18)를 통하여 버스트 길이 단위로 데이타를 처리한다. In the memory access system shown in FIG. 1, the CPU 10, the cache memory 12, the DMA 14, and the other master devices 16 serve as master devices to access the SDRAM 19 through the memory controller 18. Play a role. Reference numeral 15 in FIG. 1 is a transmission line of data processed between respective master devices and the memory controller 18. In the present invention, each master device processes the data in burst length units through the memory controller 18 when the SDRAM 19 is accessed.

본 발명에 따른 메모리 컨트롤러(18)는 내부에 제어 경로와, 데이타 경로를 구비한다. 여기에서, 데이타 경로 내부에는 버퍼가 구비되어 각각의 마스터 장치들에 의해 SDRAM(29)으로부터 버스트 길이 단위로 전송되는 데이타들을 버퍼링한다. 따라서, 메모리 컨트롤러(18)는 각각의 마스터 장치들이 버스트 길이 단위로 SDRAM(19)을 액세스함으로써 버스트 리드(BURST READ) 뿐 만 아니라, 하나의 데이타를 액세스하는 싱글 리드(SINGLE READ)도 효과적으로 수행할 수 있다. 구체적인 메모리 컨트롤러(18)의 구성 및 동작에 관해서는 도 2~도 4를 참조하여 상세히 기술된다. The memory controller 18 according to the present invention has a control path and a data path therein. Here, a buffer is provided inside the data path to buffer data transmitted by each master device from the SDRAM 29 in burst length units. Therefore, the memory controller 18 can effectively perform not only a burst read but also a single read that accesses one data by accessing the SDRAM 19 in units of burst length. Can be. The configuration and operation of the specific memory controller 18 will be described in detail with reference to FIGS. 2 to 4.

또한, 도 1의 캐쉬 메모리(12)는 캐쉬 미스가 발생되면, 캐쉬 라인은 버스트 길이 만큼 라인 필(LINE FILL)이 이루어진다. 따라서, 캐쉬 메모리(12)의 설계 시에 미리 캐쉬 라인 사이즈가 결정된다. DMA(14)는 내부에 FIFO 메모리를 버스트 길이만큼 두어 데이타를 한번에 버스트 길이 단위로 처리한다. In addition, in the cache memory 12 of FIG. 1, when a cache miss occurs, the cache line is line-filled by a burst length. Therefore, the cache line size is determined in advance at the time of designing the cache memory 12. The DMA 14 places the FIFO memory by the burst length therein and processes the data in burst length units at one time.

그밖의 다른 마스터 장치들도 모두 버스트 길이 단위로 데이타를 처리할 수 있도록 설계되어야 한다. 즉, 버스트 길이 단위로 데이타를 처리되면, 데이타 처리 속도 면에서 향상될 수 있다. 그러나, CPU(10)는 캐쉬 미스 시에 버스트 길이 단위로 데이타를 처리할 수 없으므로, 메모리 컨트롤러(18) 내부에 구비된 버퍼들(미도 시)을 이용하여 버스트 길이만큼 버퍼링된 데이타들 중 해당 데이타를 독출하여 싱글 리드(single read)를 수행한다. All other master devices must also be designed to handle data in burst lengths. That is, when data is processed in burst length units, the data processing speed can be improved. However, since the CPU 10 cannot process data in units of burst length at the time of cache miss, the corresponding data among the data buffered by the burst length by using the buffers (not shown) included in the memory controller 18 is not included. Read and perform a single read.

도 2는 본 발명의 실시예에 따른 메모리 컨트롤러(18)를 설명하기 위한 블럭도이다. 도 2를 참조하면, 메모리 컨트롤러(18)는 제어 경로(20)와 데이타 경로(27)로 구성된다. 2 is a block diagram illustrating a memory controller 18 according to an embodiment of the present invention. Referring to FIG. 2, the memory controller 18 includes a control path 20 and a data path 27.

제어 경로(20)는 데이타 액세스 속도를 향상시키기 위해, 각 마스터 장치들로부터 인가되는 메모리 액세스 어드레스와 최근에 액세스된 어드레스를 비교하여 서로 동일한가를 판단하고, 판단된 결과에 응답하여 데이타 액세스를 제어한다. 이를 위해, 제어 경로(20)는 뱅크 히트/미스 판별부(22)와 유한 상태 머신(Finite State Machine:이하, FSM이라 함)을 구비한다. 구체적으로, 뱅크 히트/미스 판별부(22)는 현재 액세스된 메모리 액세스 어드레스의 RAS 어드레스와, 최근에 액세스된 어드레스의 RAS어드레스를 비교하여, 메모리 액세스 어드레스의 RAS어드레스가 오픈된 뱅크의 RAS 어드레스와 동일한가를 판단한다. 이 때, 최근에 액세스된 어드레스의 RAS어드레스는 뱅크 히트/미스 판별부(22) 내부의 뱅크 오픈 레지스터부(미도시)에 저장된다. 따라서, 두 RAS어드레스를 비교하여 일치하는 경우에, 뱅크 오픈 히트(HIT)인 것으로 판별되고, 일치하지 않는 경우에는 뱅크 오픈 미스(MISS)인 것으로 판별된다. 또한, FSM(24)은 뱅크 히트/미스 판별부 (22)에서 판별된 결과에 의해 RAS의 프리차아지를 제어한다. 즉, 뱅크 히트/미스 판별부(22)에서의 판별 결과가 뱅크 오픈 히트인 것으로 판별되면, FSM(24)는 RAS 의 프리차아지 사이클을 생략하고 CAS어드레스에 의해서만 데이타를 액세스한다. 따라서, 메 모리 액세스 속도가 종래의 메모리 액세스 속도에 비해 줄어들 수 있다. 즉, 일반적인 메모리 액세스 사이클은 RAS액티브, CAS액티브, RAS프리차아지 사이클로 구성되므로, 본 발명에서는 메모리 액세스 속도가 1/3로 줄어들 수 있다. The control path 20 compares a memory access address applied from each master device with a recently accessed address to determine whether they are identical to each other, and controls data access in response to the determined result in order to improve the data access speed. . To this end, the control path 20 includes a bank hit / miss determination unit 22 and a finite state machine (hereinafter referred to as FSM). Specifically, the bank hit / miss determination unit 22 compares the RAS address of the currently accessed memory access address with the RAS address of the recently accessed address, and compares the RAS address of the bank in which the RAS address of the memory access address is opened. Determine if it is the same. At this time, the RAS address of the recently accessed address is stored in a bank open register section (not shown) inside the bank hit / miss discriminating section 22. Therefore, when the two RAS addresses are compared and matched, it is determined to be a bank open hit (HIT), and when not matched, it is determined to be a bank open miss (MISS). In addition, the FSM 24 controls the precharge of the RAS based on the result determined by the bank hit / miss determination unit 22. That is, if it is determined that the determination result in the bank hit / miss determination section 22 is a bank open hit, the FSM 24 skips the precharge cycle of the RAS and accesses data only by the CAS address. Thus, memory access speed can be reduced compared to conventional memory access speed. That is, since a general memory access cycle is composed of RAS active, CAS active, and RAS precharge cycles, the memory access speed can be reduced to 1/3 in the present invention.

데이타 경로(27)는 내부에 버퍼(28)를 구비하여 도 1에 도시된 각 마스터 장치들에 의해 버스트 길이 단위로 처리되는 데이타들을 버퍼링하고, 버퍼링된 데이타를 액세스하여 버스트 리드 또는 싱글 리드 동작을 수행한다. The data path 27 has a buffer 28 therein to buffer data processed in units of burst length by the master devices shown in FIG. 1, and access the buffered data to perform burst read or single read operations. Perform.

이와 같은 구성을 갖는 메모리 컨트롤러에 의해서, 도 1에 도시된 다수의 마스터 장치들은 데이타 경로(27) 내부의 버퍼(28)에 원하는 데이타가 있는 경우에, 상기 버퍼(28) 내부에 저장된 데이타를 로드한다. 또한, 버퍼(28) 내부에 원하는 데이타가 존재하지 않는 경우에는 외부의 SDRAM(19)를 액세스하여 원하는 데이타를 로드한다. By the memory controller having such a configuration, the plurality of master devices shown in FIG. 1 load data stored in the buffer 28 when there is desired data in the buffer 28 in the data path 27. do. If the desired data does not exist in the buffer 28, the external SDRAM 19 is accessed to load the desired data.

도 3은 도 2에 도시된 제어 경로(20)의 뱅크 히트/미스 판별부(22)를 설명하기 위한 상세한 회로도이다. 도 3을 참조하면, 뱅크 히트/미스 판별부(22)는 뱅크 오픈 레지스터부(32), 멀티플렉서(34) 및 비교기(36)를 포함한다.  FIG. 3 is a detailed circuit diagram illustrating the bank hit / miss determination unit 22 of the control path 20 shown in FIG. 2. Referring to FIG. 3, the bank hit / miss determination unit 22 includes a bank open register unit 32, a multiplexer 34, and a comparator 36.

뱅크 오픈 레지스터부(32)는 다수의 뱅크 오픈 레지스터들(32a~32n)을 구비한다. 여기에서, 레지스터의 수는 SDRAM(19)를 구성하는 뱅크의 수와 동일하다. 각각의 뱅크 오픈 레지스터들(32a~32n)은 SDRAM(19)(도 1참조)을 구성하는 각 n개의 뱅크들 중 최근에 오픈된 뱅크에 대한 RAS어드레스를 저장한다. 여기에서, 최근에 오픈된 뱅크에 대한 RAS어드레스라는 것은, 해당 뱅크에 의해서 최근에 액세스된 어드레스의 마지막 RAS어드레스를 나타낸다. The bank open register section 32 includes a plurality of bank open registers 32a to 32n. Here, the number of registers is equal to the number of banks constituting the SDRAM 19. Each of the bank open registers 32a to 32n stores a RAS address for the recently opened bank of the n banks constituting the SDRAM 19 (see Fig. 1). Here, the RAS address for a recently opened bank indicates the last RAS address of an address recently accessed by the bank.

멀티플렉서(34)는 각 뱅크 오픈 레지스터들(32a~32n)의 출력 신호를 입력으로 하고, 마스터 장치들로부터 인가되는 메모리 액세스 어드레스의 뱅크 어드레스(30a)를 선택 신호(SEL)로 입력한다. 따라서, 멀티플렉서(34)는 상기 뱅크 어드레스(30a)에 응답하여 뱅크 오픈 레지스터들 중 선택된 뱅크 오픈 레지스터의 출력 신호를 비교기(36)의 제2입력으로 인가한다. The multiplexer 34 inputs the output signals of the respective bank open registers 32a to 32n, and inputs the bank address 30a of the memory access address applied from the master devices as the selection signal SEL. Accordingly, the multiplexer 34 applies the output signal of the selected bank open register among the bank open registers to the second input of the comparator 36 in response to the bank address 30a.

비교기(36)는 상기 메모리 액세스 어드레스(30)의 RAS어드레스(30b)와 멀티플렉서(34)에서 출력되는 해당 뱅크의 RAS어드레스를 비교하고, 비교된 결과에 의해 뱅크 오픈 히트/미스를 판별한 판별 신호(H/M_DET)를 출력한다. 여기에서, 뱅크 오픈 히트/미스 판별 신호(H/M_DET)라는 것은 오픈된 소정의 뱅크에 대해서 동일한 RAS어드레스를 갖는지 또는 갖지 않는지를 판별하기 위한 신호이다. 따라서, 동일한 RAS어드레스를 갖는 경우에는 뱅크 오픈 히트인 것으로 설정되고, 동일한 RAS어드레스를 갖지 않는 경우에는 뱅크 오픈 미스인 것으로 설정된다. The comparator 36 compares the RAS address 30b of the memory access address 30 with the RAS address of the corresponding bank output from the multiplexer 34, and determines a bank open hit / miss based on the comparison result. Outputs (H / M_DET). Here, the bank open hit / miss determination signal H / M_DET is a signal for determining whether or not the same RAS address is provided for a predetermined bank opened. Therefore, it is set to be a bank open hit when having the same RAS address, and set to be a bank open miss when not having the same RAS address.

이하에서, 도 3을 참조하여 뱅크 히트/미스 판별부(22)의 동작에 관하여 구체적으로 기술된다. 먼저, 외부의 마스터 장치들 중 하나로부터 인가되는 메모리 액세스 어드레스(30)는 뱅크 어드레스(30a)와, RAS어드레스(30b) 및 CAS 어드레스 (30c)로 구성된다. 여기에서, 뱅크 어드레스(30a)는 상기 SDRAM 액세스 어드레스(30) 중에서 상위 비트에 해당되며, CAS 어드레스(30c)는 하위 비트에 해당된다. 또한, RAS어드레스(30b)는 메모리의 워드 어드레스에 해당되고, CAS어드레스(30c)는 메모리의 칼럼 어드레스에 해당된다. 이 때, 외부에서 액세스 되는 메모리 액세스 어드레스(30)의 뱅크 어드레스(30a)에 의해 멀티플렉서(34)를 통하여 선 택된 뱅크 오픈 레지스터의 RAS어드레스가 비교기(36)에서 비교된다. 만일, 비교기(36)에서의 비교 결과에 의해 현재 액세스된 메모리 액세스 어드레스의 RAS어드레스와, 멀티플렉서(34)에서 출력된 RAS어드레스가 일치하는 것으로 판단되면, 히트/미스 판별 신호(H/M_DET)는 소정 레벨 예를 들어, 하이 레벨로 설정된다. 히트/미스 판별 신호(H/M_DET)를 입력으로 받은 도 2의 유한 상태 머신(FSM)(24)은 상기 오픈된 뱅크에 대해서 RAS어드레스가 변화되지 않으므로 CAS 신호만을 액티브하여 메모리를 액세스한다. 즉, RAS어드레스에 의해 오픈된 뱅크에 대해서는 CAS 액티브 사이클 만으로 데이타 액세스가 이루어질 수 있다. 이 때, RAS프리차아지는 생략되므로 RAS 프리차아지에 소요되는 시간만큼 액세스 속도가 빨라진다. Hereinafter, the operation of the bank hit / miss determination unit 22 will be described in detail with reference to FIG. 3. First, the memory access address 30 applied from one of the external master devices is composed of a bank address 30a, a RAS address 30b and a CAS address 30c. Here, the bank address 30a corresponds to an upper bit of the SDRAM access address 30, and the CAS address 30c corresponds to a lower bit. In addition, the RAS address 30b corresponds to the word address of the memory, and the CAS address 30c corresponds to the column address of the memory. At this time, the RAS addresses of the bank open registers selected through the multiplexer 34 are compared by the comparator 36 by the bank address 30a of the memory access address 30 that is externally accessed. If the RAS address of the currently accessed memory access address and the RAS address output from the multiplexer 34 are determined to match by the comparison result in the comparator 36, the hit / miss determination signal H / M_DET is It is set to a predetermined level, for example, a high level. The finite state machine (FSM) 24 of FIG. 2, which receives the hit / miss determination signal (H / M_DET) as an input, does not change the RAS address with respect to the open bank, so only the CAS signal is activated to access the memory. That is, data access can be made only to the CAS active cycle for the bank opened by the RAS address. At this time, since the RAS precharge is omitted, the access speed is increased by the time required for the RAS precharge.

만일, 현재 액세스되는 메모리 어드레스(30)의 RAS어드레스(30b)와, 멀티플렉서(34)를 통해서 출력되는 RAS어드레스가 일치하지 않는다면, 비교기(36) 에서 출력되는 히트/미스 판별 신호(H/M_DET)는 제2레벨 예를 들어, 로우 레벨로 설정될 수 있다. 따라서, 뱅크 오픈 히트/미스 판별 신호(H/M_DET)에 의해 뱅크 오픈 미스인 것으로 판단되면, 현재 액세스된 메모리 어드레스의 RAS 어드레스가 해당 뱅크 오픈 레지스터에 업데이트(update)되도록 제어된다. If the RAS address 30b of the memory address 30 currently accessed and the RAS address output through the multiplexer 34 do not match, the hit / miss discrimination signal H / M_DET output from the comparator 36 is inconsistent. May be set to a second level, for example, a low level. Therefore, when it is determined that the bank is open missed by the bank open hit / miss determination signal H / M_DET, the RAS address of the currently accessed memory address is controlled to be updated to the corresponding bank open register.

도 4는 도 2에 도시된 데이타 경로(27)를 설명하기 위한 상세한 블럭도 이다. 도 4를 참조하면, 데이타 경로(27) 내부의 버퍼(28)는 각 버스트 길이 데이타1~버스트 길이 데이타 M을 저장하는 저장 블럭들(28a~28m)로 구성된다.  FIG. 4 is a detailed block diagram for explaining the data path 27 shown in FIG. Referring to FIG. 4, the buffer 28 inside the data path 27 is composed of storage blocks 28a to 28m for storing each burst length data 1 to burst length data M. As shown in FIG.

도 4의 버퍼(28)에 있어서 그 깊이(depth)에 해당하는 각각의 저장 블럭들 (28a~28m)은 버스트 길이(m)와 그 수가 같다. 따라서, 버스트 길이가 4라면, 각 저 장 블럭도 4개가 된다. 또한, 도 4의 버퍼(28)에서 각 저장 블럭들(28a~28m)에 저장된 데이타들은, 도 3의 CAS 어드레스 구간(30c)에 포함된 일부 어드레스, 바람직하게는 버스트 길이 어드레스에 의해 액세스된다. 즉, 도 4에 나타난 메모리 액세스 어드레스(30) 중에서 상위 어드레스는 도 3에 도시된 어드레스의 뱅크 어드레스(30a)와 RAS어드레스(30b) 및 CAS어드레스(30c)의 일부 어드레스로 설정된다. 따라서, 버스트 길이 어드레스는 CAS어드레스(30c)의 나머지 일부 구간을 나타낸다. In the buffer 28 of FIG. 4, each of the storage blocks 28a to 28m corresponding to the depth is equal to the burst length m. Thus, if the burst length is four, then there are four storage blocks. In addition, the data stored in each of the storage blocks 28a to 28m in the buffer 28 of FIG. 4 are accessed by some addresses, preferably burst length addresses included in the CAS address section 30c of FIG. 3. That is, among the memory access addresses 30 shown in FIG. 4, the upper address is set to the bank address 30a of the address shown in FIG. 3, and some addresses of the RAS address 30b and the CAS address 30c. Therefore, the burst length address represents the remaining partial section of the CAS address 30c.

이하에서, 도 4의 데이타 경로(27)의 동작에 관하여 구체적으로 기술된다. 전술한 바와 같이, 본 발명에 따른 메모리 컨트롤러(18)는 항상 버스트 길이 단위로 데이타를 버퍼링할 수 있는 버퍼(27)를 구비한다. 따라서, SDRAM(19)(도 1 참조)을 액세스하는 각각의 마스터 장치들은 버스트 길이 단위로 데이타를 액세스할 수 있다. 그러나, CPU(10)와 같은 소정의 마스터 장치는 항상 버스트 액세스를 요구하지는 않는다. 따라서, 버스트 리드가 아닌 싱글 리드가 요구되는 경우에 데이타 경로(27)는 메모리 액세스 어드레스(30)의 상위 어드레스와 버퍼(28)에 현재 버퍼링된 데이타의 상위 어드레스가 동일한지가 판단된다. 이 때, 버퍼링된 데이타의 상위 어드레스와 동일하다면, 하위 어드레스를 나타내는 버스트 길이 어드레스를 이용하여 버퍼(27)에 버퍼링되어 있는 데이타를 액세스함으로써 싱글 리드가 수행된다. 따라서, 버퍼(28)에서 출력되는 데이타는 데이타 버스 (15)를 통하여 데이타를 요구한 마스터 장치로 로드된다. 즉, 마스터가 싱글 리드를 요구하더라도 메모리 컨트롤러(18)는 항상 버스트 길이 단위의 데이타를 버퍼링하고 있다. 따라서, 이후에 마스터가 요구하는 싱글 데이타가 버퍼링되어 있다면 한 사이클 안에 데이타를 액세스할 수 있다. 이는 로컬리티(locality) 측면에서 버퍼링된 데이타가 히트될 확률이 높기 때문에, 액세스 시간이 현저히 줄어들 수 있다. In the following, the operation of the data path 27 of FIG. 4 is described in detail. As described above, the memory controller 18 according to the present invention includes a buffer 27 that can always buffer data in units of burst length. Thus, each master device that accesses the SDRAM 19 (see FIG. 1) can access the data in burst length units. However, certain master devices, such as the CPU 10, do not always require burst access. Therefore, in the case where a single read rather than a burst read is required, the data path 27 determines whether the upper address of the memory access address 30 and the upper address of the data currently buffered in the buffer 28 are the same. At this time, if the same as the upper address of the buffered data, a single read is performed by accessing the data buffered in the buffer 27 using the burst length address indicating the lower address. Therefore, the data output from the buffer 28 is loaded via the data bus 15 to the master device that requested the data. That is, even if the master requests a single read, the memory controller 18 always buffers data in units of burst length. Therefore, if the single data required by the master is buffered later, the data can be accessed in one cycle. This can significantly reduce the access time because of the high probability of hitting the buffered data in terms of locality.

본 발명에 따르면, SDRAM을 액세스하는 마스터 장치들이 버스트 길이 단위로 액세스하기 때문에 액세스 시간을 줄일 수 있고, 메모리 컨트롤러 내부에 버스트 길이 단위의 데이타를 버퍼링하고 있으므로 버스트 리드 외의 싱글 리드인 경우에도 데이타 액세스 속도를 빠르게 할 수 있다는 효과가 있다. 또한, 메모리 컨트롤러 내부에 구비된 뱅크 오픈 레지스터를 이용함으로써 데이타 액세스 속도를 향상시킬 수 있다는 효과가 있다. According to the present invention, the access time can be reduced because the master devices accessing the SDRAM are accessed in units of burst length, and the data access speed is achieved even in the case of a single read other than the burst read because the data in the burst length unit is buffered inside the memory controller. This has the effect of speeding up the process. In addition, the data access speed can be improved by using the bank open register provided in the memory controller.

Claims (3)

다수의 마스터 장치들이 소정의 메모리 장치를 액세스하여 원하는 데이타를 기입 또는 독출하는 것을 제어하는 메모리 액세스 시스템의 메모리 컨트롤러에 있어서, A memory controller in a memory access system for controlling a plurality of master devices to access a predetermined memory device to write or read desired data, 상기 마스터 장치들로부터 인가되는 메모리 액세스 어드레스와 최근에 액세스된 어드레스를 비교하여 서로 동일한가를 판단하고, 상기 판단된 결과에 응답하여 데이타 액세스를 제어하는 제어 경로; 및A control path comparing memory access addresses applied from the master devices with recently accessed addresses to determine whether they are the same, and controlling data access in response to the determined result; And 내부에 소정의 버퍼를 포함하며, 상기 제어 경로에서 판단된 결과에 응답하여 상기 버퍼에 저장된 데이타를 상기 다수의 마스터 장치로 출력하거나, 상기 메 모리 장치를 액세스하여 새로운 데이타를 로드하는 데이타 경로를 구비하고, It includes a predetermined buffer therein, and outputs the data stored in the buffer to the plurality of master devices in response to the result determined in the control path, or has a data path for accessing the memory device to load new data and, 상기 메모리 장치는 동기식 디램인 것을 특징으로 하는 메모리 컨트롤러. And the memory device is a synchronous DRAM. 제1항에 있어서, 상기 제어 경로는, The method of claim 1, wherein the control path, 상기 메모리 액세스 어드레스의 RAS 어드레스와, 최근에 액세스된 어드레스의 RAS어드레스를 비교하여 상기 메모리 액세스 어드레스의 RAS어드레스가 오픈된 뱅크의 RAS 어드레스와 동일한가를 판단하는 뱅크 히트/미스 판별부; 및A bank hit / miss discrimination unit for comparing the RAS address of the memory access address with the RAS address of the recently accessed address to determine whether the RAS address of the memory access address is the same as the RAS address of the open bank; And 상기 뱅크 히트/미스 판별부에서 판단된 결과에 응답하여 RAS 프리차아지를 제어하는 유한 상태 머신을 구비하고, A finite state machine for controlling RAS precharge in response to a result determined by the bank hit / miss determination unit, 상기 뱅크 히트/미스 판별부는, The bank hit / miss determination unit, N(>1)개의 뱅크 오픈 레지스터들을 구비하고, 상기 각각의 뱅크 오픈 레지스터들은 상기 메모리 장치를 구성하는 N개의 뱅크들 중 오픈된 뱅크들에서 액세스된 마지막 RAS어드레스를 저장하는 뱅크 오픈 레지스터부; A bank open register unit having N (> 1) bank open registers, each bank open register storing a last RAS address accessed in open banks among N banks constituting the memory device; 상기 N개의 각 뱅크 오픈 레지스터들의 출력 신호를 입력으로 하고, 상기 마스터 장치들로부터 액세스된 상기 메모리 액세스 어드레스의 뱅크 어드레스에 응답하여 상기 뱅크 오픈 레지스터들 중 하나의 출력 신호를 선택하는 멀티플렉서; 및A multiplexer which receives an output signal of each of the N bank open registers and selects one output signal of the bank open registers in response to a bank address of the memory access address accessed from the master devices; And 상기 마스터 장치들로부터 인가되는 상기 메모리 액세스 어드레스의 RAS 어드레스와 상기 멀티플렉서에서 출력되는 RAS어드레스를 비교하고, 상기 비교된 결과에 의해 뱅크 오픈 히트/미스를 판별한 판별 신호를 출력하는 비교기를 구비하는 것을 특징으로 하는 메모리 컨트롤러. Comparing the RAS address of the memory access address applied from the master device and the RAS address output from the multiplexer, and outputs a discrimination signal for determining a bank open hit / miss based on the comparison result A memory controller characterized by the above-mentioned. 제1항에 있어서, 상기 데이타 경로는, The method of claim 1, wherein the data path is 상기 메모리 장치에서 정의된 버스트 길이에 상응하는 데이타를 버퍼링하는 버퍼를 구비하는 것을 특징으로 하는 메모리 컨트롤러. And a buffer for buffering data corresponding to the burst length defined in the memory device.
KR1020000000967A 2000-01-10 2000-01-10 High bandwidth memory controller using synchronous dynamic random access memory KR100564560B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020000000967A KR100564560B1 (en) 2000-01-10 2000-01-10 High bandwidth memory controller using synchronous dynamic random access memory

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020000000967A KR100564560B1 (en) 2000-01-10 2000-01-10 High bandwidth memory controller using synchronous dynamic random access memory

Publications (2)

Publication Number Publication Date
KR20010068848A KR20010068848A (en) 2001-07-23
KR100564560B1 true KR100564560B1 (en) 2006-03-28

Family

ID=19637481

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020000000967A KR100564560B1 (en) 2000-01-10 2000-01-10 High bandwidth memory controller using synchronous dynamic random access memory

Country Status (1)

Country Link
KR (1) KR100564560B1 (en)

Also Published As

Publication number Publication date
KR20010068848A (en) 2001-07-23

Similar Documents

Publication Publication Date Title
US6389514B1 (en) Method and computer system for speculatively closing pages in memory
TWI457753B (en) Memory controller and method for managing access to memory
US9836416B2 (en) Memory devices and systems including multi-speed access of memory modules
US6438062B1 (en) Multiple memory bank command for synchronous DRAMs
US20070055813A1 (en) Accessing external memory from an integrated circuit
US5587964A (en) Page mode and nibble mode DRAM
JP2003501747A (en) Programmable SRAM and DRAM cache interface
JPH0955081A (en) Memory controller for control of dynamic random-access memory system and control method of access to dynamic random-access memory system
US20080098176A1 (en) Method and Apparatus for Implementing Memory Accesses Using Open Page Mode for Data Prefetching
JP5428687B2 (en) Memory control device
JPS62194563A (en) Buffer storage device
US6976122B1 (en) Dynamic idle counter threshold value for use in memory paging policy
US5860117A (en) Apparatus and method to improve primary memory latencies using an eviction buffer to store write requests
US20040190362A1 (en) Dram and access method
US5835947A (en) Central processing unit and method for improving instruction cache miss latencies using an instruction buffer which conditionally stores additional addresses
US20050182868A1 (en) Apparatus and method for controlling memory
US5963481A (en) Embedded enhanced DRAM, and associated method
KR100564560B1 (en) High bandwidth memory controller using synchronous dynamic random access memory
JPH08328949A (en) Storage device
JPH1139857A (en) Memory system and information processing system
US6433786B1 (en) Memory architecture for video graphics environment
US6385687B2 (en) Method and apparatus for simultaneously accessing the tag and data arrays of a memory device
US10768859B1 (en) History-based memory control system and method
KR940001590B1 (en) Method and device for shortening memory access time in reading and writing
US20060129762A1 (en) Accessible buffer for use in parallel with a filling cacheline

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee