KR20000067533A - Memory access system and method thereof - Google Patents

Memory access system and method thereof Download PDF

Info

Publication number
KR20000067533A
KR20000067533A KR1019990015429A KR19990015429A KR20000067533A KR 20000067533 A KR20000067533 A KR 20000067533A KR 1019990015429 A KR1019990015429 A KR 1019990015429A KR 19990015429 A KR19990015429 A KR 19990015429A KR 20000067533 A KR20000067533 A KR 20000067533A
Authority
KR
South Korea
Prior art keywords
memory
access
cache
data
address
Prior art date
Application number
KR1019990015429A
Other languages
Korean (ko)
Other versions
KR100328726B1 (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 KR1019990015429A priority Critical patent/KR100328726B1/en
Publication of KR20000067533A publication Critical patent/KR20000067533A/en
Application granted granted Critical
Publication of KR100328726B1 publication Critical patent/KR100328726B1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0207Addressing or allocation; Relocation with multidimensional access, e.g. row/column, matrix
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0804Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Dram (AREA)

Abstract

PURPOSE: A memory access system and its control method is provided to reduce a cache refill time for referencing a cache at a main memory when a cache miss occurs. CONSTITUTION: A memory access system comprises a memory bank unit(62), a memory address unit(60), a row address table unit(64) and a comparator(68). The memory bank unit(62) includes a sub-array(37) for storing data accessed by row and column address, and a sensing amplifier(35) temporarily stored when the data is accessed from the sub-array(37). The memory address unit(60) stores an address information for accessing the data, stored in the sub-array(37), by a control of a central controller. The row address table unit(64), selected by the address information of the memory address unit(60), expresses that a page data stored in the row address is held by the sensing amplifier(35). The comparator(68) compares the row address information, of the row address table unit(64), with the address information of the memory address unit(60).

Description

메모리 엑세스 시스템 및 그 제어방법{Memory access system and method thereof}Memory access system and control method thereof

본 발명은 메모리 엑세스 시스템(memory access system) 및 그 제어방법에 관한 것으로서, 특히 캐쉬미스(cache miss)가 발생될 때 주메모리에서 캐쉬를 참조하는 캐쉬리필시간을 감소시키는 메모리 엑세스 시스템 및 그 제어방법에 관한 것이다.BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a memory access system and a control method thereof, and more particularly, to a memory access system for reducing the cache refill time for referencing a cache in a main memory when a cache miss occurs. It is about.

일반적으로, 프로세서와 메모리 설계 기술은 속도와 집적도 중심으로 서로 다르게 발전하면서, 도 1의 오프칩 주메모리를 가지는 컴퓨터 시스템을 나타낸 블록도에서와 같이 중앙제어부(10)와 캐쉬(cache)(12)메모리가 단일 칩(chip)으로 집적된 프로세서(100)와 오프칩 주메모리(off chip main memory)(18)가 메모리버스(16)에 의하여 연결되어 구성되는 일반적인 컴퓨터 시스템에서 프로세서와 메모리간의 정보처리 속도 면에서의 성능 격차는 해마다 증가하고 있다.In general, processor and memory design techniques evolve differently around speed and density, with a central controller 10 and a cache 12 as shown in a block diagram illustrating a computer system with off-chip main memory of FIG. Information processing between a processor and a memory in a general computer system in which a memory 100 in which a memory 100 is integrated into a processor 100 and an off chip main memory 18 are connected by a memory bus 16. The performance gap in speed is increasing year by year.

그런데 VLSI 기술의 급속한 발전에 따라서 단일 칩(single chip)에 집적할 수 있는 트랜지스터의 양이 크게 증가하고 있고, 또한 메모리 집적 설계 기술도 많은 응용 분야의 컴퓨터 시스템에서 요구하는 메모리 용량보다 큰 용량을 단일 칩으로 집적할 수 있는 수준으로 발전하리라 예상된다. 따라서 해마다 증가하는 프로세서와 메모리간의 성능 격차를 극복하기 위한 해결책으로 도 2의 온칩 주메모리를 가지는 컴퓨터 시스템을 나타낸 블록도에서와 같이 온칩 D램(dynamic RAM) 주메모리를 가지는 프로세서-메모리 집적 구조 연구가 활발히 진행되고 있다.However, with the rapid development of VLSI technology, the amount of transistors that can be integrated on a single chip is increasing significantly. Also, the memory integrated design technology has a single capacity larger than the memory capacity required by computer systems in many applications. It is expected to develop to a level that can be integrated into chips. Therefore, as a solution to overcome the increasing performance gap between the processor and the memory year after year, as shown in the block diagram of a computer system having an on-chip main memory of Figure 2 processor-memory integrated structure having an on-chip dynamic RAM (RAM) main memory Is actively underway.

도 2에서 도시된 바와 같이, 온칩 주메모리의 구조를 가지면, 캐쉬(24)와 주메모리(28)간의 메모리 버스(26)의 넓이와 클럭주파수를 증대시킴에 의하여 높은 메모리 대역폭과 낮은 메모리 지연(latency)을 가질 수 있다.As shown in FIG. 2, the structure of the on-chip main memory increases the width and clock frequency of the memory bus 26 between the cache 24 and the main memory 28 to increase the memory bandwidth and the low memory delay. latency).

또한 오프칩 메모리 버스를 구동하지 않기 때문에 저전력의 장점을 가진다. 일반 D램은 세대에 따라서 2의 승수로 크기가 증가하지만, 온칩 D램은 응용에 따라서 크기와 형태를 마음대로 조절할 수 있다. 그리고 칩의 개수를 줄일 수 있기 때문에 보드 크기도 감소시킬 수 있다.It also has the advantage of low power because it does not drive off-chip memory buses. General DRAMs increase in size by a multiplier of 2 depending on generation, but on-chip DRAMs can be freely sized and shaped depending on the application. And because the number of chips can be reduced, the board size can be reduced.

도 3은 다중 뱅크와 공유 감지증폭기를 갖는 D램의 간략한 내부 구조를 나타낸 도면이다.3 shows a simplified internal structure of a DRAM having multiple banks and a shared sense amplifier.

D램은 여러 개의 뱅크(bank)로 구성되지만 도 3에서는 설명을 위하여 두 개의 뱅크가 설명된다. 뱅크0과 뱅크1로 이루어지는 각 뱅크는 여러 개의 서브어레이(subarray)(37)와, 각 서브어레이(37)의 양끝에 있는 공유 감지증폭기(shared sense amp)(35)(이하 감지증폭기로 용어를 통일한다.)와, 로디코더(row decoder)(31), 칼럼 디코더(column decoder)(33)로 구성된다.The DRAM is composed of several banks, but two banks are described in FIG. 3 for explanation. Each bank, consisting of bank 0 and bank 1, has several subarrays 37, and a shared sense amplifier 35 (hereinafter referred to as sense amplifiers) at each end of each subarray 37. Unity), a row decoder 31, and a column decoder 33.

즉, 각 서브어레이(37) 내부에는 다수의 메모리 데이터가 격자 형태로 저장되어 있기 때문에 주어진 서브어레이 내부의 메모리 데이터는 로번지(address)와 칼럼번지에 의하여 엑세스할 수 있다.That is, since a plurality of memory data are stored in a grid form in each subarray 37, the memory data in a given subarray can be accessed by a row address and a column address.

또한, 각각의 뱅크는 독립적으로 동작이 가능하며, 뱅크 개수가 많을수록 캐쉬 미스에 의한 캐쉬리필요구(cache refill request)가 이전 캐쉬리필요구와 충돌할 확률인 뱅크 충돌률이 낮아져서 D램의 성능이 높아진다. 그러나 동일한 메모리 용량을 기준으로 뱅크 개수를 늘이면 칩 크기가 커지고 전력 소모가 커지는 문제점이 있다.In addition, each bank can operate independently. The larger the number of banks, the lower the bank collision rate, which is the probability that the cache refill request by the cache miss will collide with the previous cache request, resulting in higher DRAM performance. . However, if the number of banks is increased based on the same memory capacity, there is a problem in that the chip size increases and power consumption increases.

종래 기술에 따른 계층적 다중 뱅크 메모리(19th Conf. on Advanced Research in VLSI, 1997, "The hierarchical multi-bank DRAM: A high-performance architecture for memory integrated with processors" by T. Yamauchi, L. Hammond, and K. Olukotun)는 부가적인 하드웨어를 사용하여 각 뱅크 내부의 서브어레이를 반 독립적인 뱅크로 동작시켜서 뱅크의 개수를 늘이지 않고 뱅크 충돌률을 낮추는 방법이 있다.19th Conf. On Advanced Research in VLSI, 1997, "The hierarchical multi-bank DRAM: A high-performance architecture for memory integrated with processors" by T. Yamauchi, L. Hammond, and K. Olukotun uses additional hardware to operate subarrays within each bank as semi-independent banks, thereby reducing the bank collision rate without increasing the number of banks.

또한, 종래 기술의 미국특허 제5,652,860호(Memory control device, 1997)는 가상 메모리(virtual memory) 시스템에서 FPM(Fast Page Mode) 모드와 정상(normal)모드를 결정하는 메모리 제어 디바이스에 관한 것으로서, 가상 메모리 시스템에서 캐쉬 메모리에 대한 정의 없이 가상 번지의 메모리 엑세스 요구에 대해서 비로 이전 메모리 엑세스 요구와 가상 주소를 비교하여 동일하면 감지증폭기를 활용하는 FPM 모드로 동작하도록 결정하고 아니면 정상모드로 동작하는 것에 관한 것이다.In addition, US Patent No. 5,652,860 (Memory control device, 1997) of the prior art relates to a memory control device for determining a fast page mode (FPM) mode and a normal mode in a virtual memory (virtual memory) system, The memory system compares the previous memory access request with the virtual address for the memory access request of the virtual address without defining the cache memory, and decides to operate in FPM mode using the detection amplifier if it is the same. will be.

도 4는 D램의 엑세스 순서를 설명하기 위한 도면이다.4 is a diagram for describing an access sequence of a DRAM.

도시된 바와 같이, D램의 엑세스 순서는 일반적으로 크게 세 단계로 나뉜다. 프리차지(precharge)(42)는 D램 내부의 라인(line)들을 일정한 전압으로 차지(charge)하는 단계로써, D램 엑세스를 하기 위한 준비 단계이다.As shown, the access order of the DRAM is generally divided into three steps. The precharge 42 is a step of charging the lines in the DRAM to a constant voltage, which is a preparation step for accessing the DRAM.

프리차지(42)를 하면 전기적으로 감지증폭기(35)가 담고 있던 기존의 D램 페이지(page) 데이터는 지워지게 된다. 그리고 로엑세스(44)는 D램 내부의 서브어레이(37)로부터 하나의 로 데이터를 감지증폭기(35)로 읽어오는 것이다. 이때 감지증폭기로 한번에 읽어오는 로 데이터는 D램 페이지(page)이다. 그리고 칼럼엑세스(46)는 감지증폭기(35)로 읽어온 D램 페이지 중에서 원하는 칼럼 비트(bit)를 선택하여 읽는 것이다.When the precharge 42 is performed, the existing DRAM page data contained in the sensing amplifier 35 is erased. The row access 44 reads one row data from the subarray 37 inside the DRAM to the sense amplifier 35. At this time, the raw data read into the sense amplifier at once is a DRAM page. The column access 46 selects and reads a desired column bit from the DRAM pages read by the sense amplifier 35.

도 5a는 종래 기술에서 주메모리 엑세스제어방식을 설명하기 위한 도면이다.5A is a diagram for describing a main memory access control method in the prior art.

도시된 종래 기술의 주메모리 엑세스제어방식에서는, 연속적인 2번의 캐쉬 미스가 발생했을 때 2번의 캐쉬리필(cache refill)을 수행하는 방식을 보여준다. 즉, 하나의 캐쉬 처리 블록(52)은 일반적인 오프칩 주메모리에서 4번의 칼럼 엑세스하면 처리되는 크기로 가정하면, 프리차지와 로엑세스 그리고 칼럼엑세스를 차례로 수행하는 것을 나타낸다. 이때, x축은 데이터의 번지공간을 나타내고 y축은 시간을 나타낸다.In the illustrated main memory access control method, a method of performing two cache refills when two consecutive cache misses occur is shown. That is, one cache processing block 52 represents precharging, row access, and column access in sequence, assuming that the size of a single row processing block 52 is processed after four column accesses in a general off-chip main memory. In this case, the x-axis represents the address space of the data and the y-axis represents time.

기존의 오프칩 D램 주메모리에서 캐쉬 미스가 발생했을 때 미스 블록(miss block)을 참조하기 위하여 D램의 엑세스 제어 방식인 Page Mode, 이것을 토대로 발전한 FPM, EDO(Extended Data Out) Mode, Synchronous D램 등에서는 프리차지, 로엑세스 및 여러 번의 칼럼 엑세스를 통해서 하나의 미스 블록 참조 즉 캐쉬리필을 수행한다. 그리고, 다음으로 일반적인 방식에 따라서 D램 엑세스 즉 다음 블록 참조 처리를 대비하기 위하여 제어기는 D램을 프리차지한다.Page mode, which is an access control method of DRAM to refer to the miss block when a cache miss occurs in the existing off-chip DRAM main memory, FPM developed based on this, Extended Data Out (EDO) mode, Synchronous D In RAM, etc., one miss block reference, or cache refill, is performed through precharge, low access, and multiple column accesses. Next, the controller precharges the DRAM in order to prepare for DRAM access, that is, next block reference processing, according to a general scheme.

따라서 도 5a에서 도시된 두 번째 캐쉬리필 처리 블록(54)에서 그 엑세스 순서 및 시간은 첫 번째 캐쉬리필 처리 블록(52)과 동일하다. 이때, 도 5a는 캐쉬 미스가 연속적으로 발생하는 상황을 가정한 것이며, 이어지는 캐쉬 미스가 연속적으로 발생하지 않고 캐쉬리필 처리 시간보다 긴 간격을 가지고 발생하면 일반적인 D램 엑세스 제어기에 의하여 프리차지를 미리 수행함으로써 캐쉬리필시간을 감소시킬 수 있다.Thus, in the second cache refill processing block 54 shown in FIG. 5A, the access order and time are the same as the first cache refill processing block 52. At this time, FIG. 5A assumes a situation in which cache misses occur continuously. If a subsequent cache miss does not occur continuously and occurs at an interval longer than the cache refill processing time, the precharge is performed by a general DRAM access controller. By doing so, the cache refill time can be reduced.

도 5b는 종래 기술에서 다른 주메모리 엑세스제어방식을 설명하기 위한 도면이다.5B is a diagram for explaining another main memory access control method in the related art.

즉, 도 5b는 종래 기술에서 다른 주메모리 엑세스제어방식으로서, 온칩 주메모리를 가지는 프로세서-메모리 집적 구조에서 캐쉬와 온칩 주메모리 사이의 메모리 버스의 넓이가 캐쉬 블록 크기로 구성했을 때의 캐쉬리필 처리방식을 나타낸 도면이다.That is, FIG. 5B is a main memory access control method different from the related art. In the processor-memory integrated structure having the on-chip main memory, the cache refill process when the width of the memory bus between the cache and the on-chip main memory is configured as the cache block size It is a figure which shows the method.

도시된 바와 같이, 프리차지, 로엑세스 그리고 단 한번의 칼럼 엑세스만으로 하나의 캐쉬리필 요구를 처리할 수 있다. 또한 도 5b는 도 5a와 마찬가지로 일반적인 D램 엑세스 제어기를 사용하여 하나의 캐쉬리필 요구를 처리하면 다음 캐쉬리필 요구를 처리하도록 프리차지를 하여 감지증폭기(35)에 전에 저장되어 있던 데이터가 지워지게 동작된다. 따라서 두 번째 캐쉬리필 처리도 첫 번째 캐쉬리필 처리방식과 같다.As shown, one pre-charge, low access, and only one column access can handle one cache refill request. In addition, as shown in FIG. 5A, when a single cache refill request is processed using a general DRAM access controller, FIG. 5B may precharge to process the next cache refill request, thereby erasing data previously stored in the detection amplifier 35. do. Therefore, the second cache refill process is the same as the first cache refill process.

일반적인 D램 엑세스 제어 방식 중에 Page Mode 및 이것이 발전된 방식인 FPM, EDO, Synchronous D램들의 방식은, 로엑세스를 통해서 감지증폭기(35)로 읽은 D램 페이지 데이터 중에서 연속적인 칼럼 엑세스를 여러번 수행함으로써 하나의 블록 엑세스 요구를 처리한다.Page mode and FPM, EDO, and Synchronous DRAMs, which are the general DRAM access control methods, are performed by performing continuous column access several times among DRAM page data read by the sense amplifier 35 through raw access. Handles block access requests.

그러나 상기의 방식들은 메모리 버스의 넓이가 캐쉬 블록 크기만큼 커지면 하나의 블록 엑세스 요구는 단 한번의 칼럼 엑세스만으로 처리되며, 이에 따라서 도 5a와 도 5b에서 설명된 D램 엑세스 제어 방식은 감지증폭기에 이미 저장되어 있는 D램 페이지 데이터를 한번의 캐쉬리필 처리 후에 다음의 캐쉬리필에 대비하기 위하여 D램을 프리차지함으로써 다시 활용하지 못하게 되는 문제점이 있다.However, in the above schemes, when the size of the memory bus becomes as large as the cache block size, one block access request is processed by only one column access. Thus, the DRAM access control scheme described in FIGS. 5A and 5B is not limited to the sense amplifier. There is a problem that the stored DRAM page data cannot be used again by precharging the DRAM to prepare for the next cache refill after one cache refill process.

따라서 상기와 같은 문제점을 해결하기 위한 본 발명의 목적은, 도 5c에서 도시된 바와 같이, 캐쉬리필요구에 따른 하나의 블록 엑세스 요구를 처리한 후에, 중앙제어부의 제어의 의해서 감지증폭기에 상기 블록 데이터를 포함하는 페이지 데이터가 보유된 상태에서 동일한 상기 페이지 데이터가 포함하는 임의의 블록 데이터를 요구하는 두 번째 상기 캐쉬리필요구가 발생되면, 프리차지와 로엑세스를 하지 않고 감지증폭기에 보유된 페이지 데이터에서의 칼럼 엑세스에 의하여 두 번째 캐쉬리필요구를 처리하는 메모리 엑세스 시스템 및 그 제어방법을 제공하고자 하는데 있다.Accordingly, an object of the present invention for solving the above problems, as shown in Figure 5c, after processing one block access request according to the cache needs, the block data to the sense amplifier by the control of the central control unit If a second cache request is generated that requires any block data included in the same page data in the state that the page data including the data is retained, the page data held in the sensing amplifier without precharging and low access is generated. The purpose of the present invention is to provide a memory access system and a control method for processing a second cache request by column access.

도 1은 오프칩 주메모리를 가지는 컴퓨터 시스템을 나타낸 블록도이다.1 is a block diagram illustrating a computer system having off-chip main memory.

도 2는 온칩 주메모리를 가지는 컴퓨터 시스템을 나타낸 블록도이다.2 is a block diagram illustrating a computer system having an on-chip main memory.

도 3은 다중 뱅크와 공유 감지증폭기를 갖는 D램의 간략한 내부 구조를 나타낸 도면이다.3 shows a simplified internal structure of a DRAM having multiple banks and a shared sense amplifier.

도 4는 D램의 엑세스 순서를 설명하기 위한 도면이다.4 is a diagram for describing an access sequence of a DRAM.

도 5a는 종래 기술에서 주메모리 엑세스제어방식을 설명하기 위한 도면이다.5A is a diagram for describing a main memory access control method in the prior art.

도 5b는 종래 기술에서 다른 주메모리 엑세스제어방식을 설명하기 위한 도면이다.5B is a diagram for explaining another main memory access control method in the related art.

도 5c는 본 발명에 따른 주메모리 엑세스제어방식을 설명하기 위한 도면이다.5C is a diagram for describing a main memory access control method according to the present invention.

도 6은 본 발명에 따른 메모리 엑세스 시스템을 나타낸 블록도이다.6 is a block diagram illustrating a memory access system according to the present invention.

도 7은 도 6의 메모리 엑세스 시스템에서 그 제어방법을 나타낸 흐름도이다.FIG. 7 is a flowchart illustrating a control method of the memory access system of FIG. 6.

도 8은 본 발명의 뱅크 충돌률과 D램 페이지 엑세스 성공률의 변화에 따른 캐쉬리필시간의 변화를 나타낸 도면이다.8 is a view illustrating a change in cache refill time according to a change in a bank collision rate and a DRAM page access success rate according to the present invention.

〈도면의 주요부분에 대한 부호의 설명〉<Explanation of symbols for main parts of drawing>

10, 22.. 중앙제어부 12, 24.. 캐쉬10, 22. Central control unit 12, 24 .. Cache

16, 26.. 메모리버스 18, 28.. 주메모리16, 26. Memory bus 18, 28. Main memory

31.. 로디코더 33.. 칼럼디코더31 .. rod decoder 33 .. column decoder

35.. 감지증폭기 37.. 서브어레이35 .. Sense amplifiers 37 .. Subarrays

42.. 프리차지 44.. 로엑세스42 .. Precharge 44 .. Low Access

46.. 칼럼엑세스 60.. 메모리번지부46 .. Column Access 60 .. Memory Address

62.. 메모리뱅크부 64.. 로번지 테이블부62 .. Memory Bank 64 .. Low Address Table

68.. 비교부 100, 200.. 프로세서68 .. Comparators 100, 200 .. Processor

상기 목적을 달성하기 위하여 본 발명의 메모리 엑세스 시스템은, 로(row)와 칼럼(column) 번지에 의하여 엑세스되는 데이터가 저장되는 서브어레이와, 상기 서브어레이로부터 데이터가 엑세스될 때 임시 저장되는 감지증폭기를 포함하는 메모리뱅크부; 상기 메모리뱅크부에서 소정의 서브어레이에 저장된 데이터를 중앙제어부의 제어에 의하여 엑세스하기 위한 번지(address)정보를 포함하는 메모리번지부; 상기 메모리번지부의 번지정보에 의하여 선택되며 상기 메모리뱅크부의 임의의 로번지에 저장된 페이지 데이터가 상기 감지증폭기에 보유되어 있는 지를 나타내는 로번지정보를 포함하는 로번지 테이블부; 및 상기 메모리번지부에 의하여 선택되어 출력되는 상기 로번지 테이블부의 상기 로번지정보와 상기 메모리번지부에 포함되는 번지정보를 각각 비교하여 동일한 로번지를 엑세스하는 것으로 판단되면, 상기 칼럼 번지만에 의하여 상기 감지증폭기의 페이지 데이터를 엑세스하는 비교부를 포함하는 것을 특징으로 한다.In order to achieve the above object, the memory access system of the present invention includes a subarray in which data accessed by a row and a column address are stored, and a sense amplifier temporarily stored when data is accessed from the subarray. Memory bank unit comprising a; A memory address unit including address information for accessing data stored in a predetermined subarray in the memory bank unit by control of a central controller; A low address table unit selected by address information of the memory address unit and including low address information indicating whether page data stored in any low address of the memory bank unit is retained in the detection amplifier; And comparing the row address information of the row address table unit selected by the memory address unit with the address information included in the memory address unit and accessing the same row address, by the column address only. And a comparator for accessing the page data of the sense amplifier.

상기 목적을 달성하기 위하여 본 발명의 메모리 엑세스 제어방법은, 프리차지, 로엑세스 그리고 칼럼엑세스에 의하여 중앙제어부로부터 발생되는 캐쉬리필요구가 처리되는 메모리 엑세스 제어방법에 있어서, 상기 캐쉬리필요구에 따른 하나의 블록 엑세스 요구를 처리한 후에, 상기 감지증폭기의 상기 블록 데이터를 포함하는 페이지 데이터가 보유된 상태에서 동일한 상기 페이지 데이터가 포함하는 임의의 블록 데이터를 요구하는 두 번째 캐쉬리필요구가 발생되면, 상기 칼럼 엑세스에 의하여 상기 감지증폭기에 보유되는 페이지 데이터에서 상기 두 번째 캐쉬리필요구를 처리하는 것을 특징으로 한다.In order to achieve the above object, the memory access control method of the present invention is a memory access control method in which a cache request generated from a central controller is processed by precharge, row access, and column access. After processing a block access request of the second cache request, when the second cache requesting any block data included in the same page data is generated while the page data including the block data of the sense amplifier is retained. The second cache needs to be processed in the page data held by the sense amplifier by column access.

상기 목적을 달성하기 위하여 본 발명에 따른 다른 실시예의 메모리 엑세스 제어방법은, 프리차지, 로엑세스에 의하여 감지증폭기에 블록데이터를 포함하는 페이지 데이터가 저장되고, 상기 페이지 데이터로부터 칼럼엑세스에 의하여 캐쉬리필요구가 처리되는 메모리 엑세스 제어방법에 있어서,In accordance with another aspect of the present invention, there is provided a memory access control method according to an embodiment of the present invention, wherein page data including block data is stored in a sense amplifier by precharge and raw access, and cache refilled by column access from the page data. In the memory access control method that the request is processed,

상기 캐쉬리필요구에 따라서 하나의 블록 엑세스를 처리한 후에, 감지 증폭기에 보유된 상기 블록데이터를 프리차지하지 않고, 상기 감지증폭기에 상기 블록 데이터를 포함하는 페이지 데이터가 보유된 상태에서, 상기 페이지 데이터가 포함하는 임의의 블록 데이터를 요구하는 두 번째 캐쉬리필요구가 발생되면, 상기 감지증폭기에 보유되는 페이지 데이터를 요구하는 두 번째 캐쉬리필요구가 발생되면, 상기 감지증폭기에 보유되는 상기 페이지 데이터로부터 블록 데이터가 칼럼 엑세스되는 시간이 아래의 식에 의하여 계산되는 것을 특징으로 하는 메모리 엑세스 제어방법.After processing one block access according to the cache necessity, the page data in the state in which page data including the block data is held in the sense amplifier without precharging the block data held in the sense amplifier. If a second cache request is generated that requires any block data that contains a second cache request, and a second cache request is required to request page data held by the sense amplifier, a block is generated from the page data held by the sense amplifier. Memory access control method, characterized in that the time the data is column access is calculated by the following equation.

이때, TDRAM_access는 데이터 출력시간, tRP은 프리차지 시간, tRCD은 로엑세스 시간, tCAC은 칼럼 엑세스 시간, tRAC은tRCD와 tCAC의 합으로서 로칼럼 엑세스시간, αi는 캐쉬리필요구가 i번째 D램 뱅크에서 서비스 받을 확률, βi는 캐쉬리필요구가 i번째 D램 뱅크에서 서비스 받고 있는 이전 요구와 충돌을 일으킬 확률, γi은 요구하는 데이터를 i번째 D램 뱅크의 감지 증폭기가 이미 보유하고 있을 확률이다.Where T DRAM_access is the data output time, t RP is the precharge time, t RCD is the low access time, t CAC is the column access time, t RAC is the sum of t RCD and t CAC , and the local column access time, α i is the cache. The probability that the request needs to be serviced in the i-th DRAM bank, β i is the probability that the cache request collides with the previous request being serviced in the i-th DRAM bank, and γ i is the required data of the i-th DRAM bank. It is the probability that the sense amplifier already holds.

이하, 본 발명의 구성 및 동작을 도 6내지 도 8을 참조하여 설명한다.Hereinafter, the configuration and operation of the present invention will be described with reference to FIGS. 6 to 8.

도 6은 본 발명에 따른 메모리 엑세스 시스템을 나타낸 블록도이다.6 is a block diagram illustrating a memory access system according to the present invention.

도시된 바와 같이, 본 발명의 메모리 엑세스 시스템은, 메모리뱅크부(62), 메모리번지부(60), 로번지 테이블부(64) 및 비교부(68)를 포함한다.As shown, the memory access system of the present invention includes a memory bank 62, a memory address 60, a low address table 64, and a comparator 68.

상기 메모리뱅크부(62)는 로와 칼럼 번지에 의하여 엑세스되는 데이터가 저장되는 서브어레이(37)와, 서브어레이(37)로부터 데이터가 엑세스될 때 임시 저장되는 감지증폭기(35)를 포함한다.The memory bank unit 62 includes a subarray 37 in which data accessed by a row and a column address are stored, and a sense amplifier 35 temporarily stored when data is accessed from the subarray 37.

상기 메모리번지부(60)는 메모리뱅크부(62)에서 소정의 서브어레이(37)에 저장된 데이터를 중앙제어부의 제어에 의하여 엑세스하기 위한 번지정보를 포함한다.The memory address unit 60 includes address information for accessing data stored in a predetermined subarray 37 in the memory bank unit 62 under the control of the central controller.

상기 로번지 테이블부(64)는 메모리번지부(60)의 번지정보가 가리키는 메모리뱅크부(62)의 임의의 로번지 데이터가 감지증폭기(35)에 보유되어 있는 지를 나타내는 로번지정보를 포함한다.The low address table unit 64 includes low address information indicating whether any low address data of the memory bank unit 62 indicated by the address information of the memory address unit 60 is held in the sense amplifier 35. .

상기 비교부(68)는 메모리번지부(60)에 의하여 선택되어 출력되는 로번지 테이블부(64)의 상기 로번지정보와 메모리번지부(60)에 포함되는 번지정보를 각각 입력함으로써 비교하여 동일한 번지를 엑세스하는 것으로 판단되면, 상기 칼럼 번지만에 의하여 감지증폭기(35)에 보유된 페이지 데이터를 엑세스한다.The comparison unit 68 compares each of the low address information of the low address table unit 64 selected and output by the memory address unit 60 and the address information included in the memory address unit 60, respectively, and compares the same. If it is determined that the address is to be accessed, the page data held in the sense amplifier 35 is accessed only by the column address.

즉, 상기 메모리번지부(60)는 뱅크, 서브어레이, 로, 칼럼의 4개 필드(field)로 구성된다.That is, the memory address unit 60 is composed of four fields: bank, subarray, row, and column.

상기 뱅크 필드는 다중 뱅크 D램인 다수의 뱅크 중에서 특정 뱅크를 가리키며, 실시예로서, b비트의 크기를 가지기 때문에 뱅크의 개수는 2b개로 된다. 상기 서브어레이 필드는 하나의 뱅크에 존재하는 다수의 서브어레이들 중에서 특정 서브어레이를 가리키며, 실시예로서 s비트의 크기를 가지기 때문에 하나의 뱅크에 존재하는 서브어레이의 개수는 2s개인데 2s=k로 정의된다.The bank field indicates a specific bank among a plurality of banks, which are multi-bank D-RAMs. In an embodiment, since the bank field has a size of b bits, the number of banks is 2b . The sub-array field is the number of sub-arrays existing on one of the banks is 2 s dog because pointing to a particular sub-array from among a plurality of sub-arrays existing on one of the banks, by way of example gajigi the size of the s bit 2 s It is defined as = k.

도시된 바와 같이, 각 뱅크 내부에 구비되는 다수의 서브어레이(37)들은 양끝에 감지증폭기(37)를 구비한다. 이때 메모리번지부(60)에 포함되는 상기 로필드는 임의의 서브어레이(37)에 존재하는 다수의 D램 로들 중에서 특정한 로를 가리키며, 실시예로서 x비트의 크기를 가지기 때문에 서브어레이에 존재하는 로의 개수는 2x개로 된다.As shown, the plurality of subarrays 37 provided in each bank includes sensing amplifiers 37 at both ends. In this case, the lowfield included in the memory address unit 60 indicates a specific row among a plurality of DRAM rows existing in an arbitrary subarray 37. In an embodiment, the lowfield is present in the subarray because it has a size of x bits. The number of furnaces is 2 x .

또한, 메모리번지부(60)에 포함되는 상기 칼럼 필드는 하나의 D램 로에 존재하는 다수의 비트 칼럼 데이터들 중에서 임의의 비트 데이터를 가리키며, 실시예로서 y비트의 크기를 가지기 때문에 하나의 D램 로는 2y개의 비트를 포함한다.In addition, the column field included in the memory address unit 60 indicates arbitrary bit data among a plurality of bit column data existing in one DRAM row. As an embodiment, the column field includes one D RAM. Low contains 2 y bits.

한편, 로번지 테이블부(64)는 이전 메모리 요구들 중에서 데이터를 아직 보유하고 있는 감지증폭기(35)를 구비하는 메모리 요구들의 로번지를 저장하기 위하여 사용되는데, 실시예로서, 로번지 테이블의 항목개수는 총 뱅크 개수와 각 뱅크 당 서브어레이(37) 개수의 곱이며, 2b+s로 정의된다. 또한 실시예로서 로번지 테이블부(64)에 저장되는 로번지의 총 크기는 2b+sx 비트로 정의된다.On the other hand, the low address table 64 is used to store low addresses of memory requests having a sense amplifier 35 that still holds data among previous memory requests. Is the product of the total number of banks and the number of subarrays 37 per bank, which is defined as 2 b + s . In addition, as an embodiment, the total size of the low address stored in the low address table 64 is defined as 2 b + s x bits.

상기와 같이 구성되는 본 발명에 따른 메모리 엑세스 시스템을 도 7의 메모리 엑세스 시스템에서 그 제어방법을 나타낸 흐름도에 의하여 설명한다.A memory access system according to the present invention configured as described above will be described by a flowchart showing a control method thereof in the memory access system of FIG.

즉, 중앙제어부(CPU)에 포함되는 메모리 프로세서에 의하여 캐쉬 내의 데이터를 엑세스함에 있어서, 캐쉬미스(cache miss)가 발생되어서 생성된 메모리번지부(60)의 뱅크 필드의 번지정보에 의하여 메모리뱅크부(62)가 디코딩된다.(70)That is, in accessing the data in the cache by the memory processor included in the CPU, a cache miss is generated, and the memory bank unit is configured based on the address information of the bank field of the memory address unit 60 generated by the cache miss. (62) is decoded. (70)

그러면 상기 프로세서에 의하여 캐쉬 미스에 의한 캐쉬리필요구가 이전 캐쉬리필요구와 충돌하는 뱅크 충돌(bank conflict)이 발생되었는 지가 판단된다.(71)The processor then determines whether a bank conflict has occurred in which a cache miss caused by a cache miss collides with a previous cache miss.

상기 71단계에서 뱅크 충돌이 발생되지 않은 것으로 판단되면, 메모리번지부(60)에서의 서브어레이 필드의 번지정보에 의하여 서브어레이(37)가 디코딩된다.(72)If it is determined in step 71 that no bank collision has occurred, the subarray 37 is decoded by the address information of the subarray field in the memory address unit 60. (72)

그러나 이미 원하는 뱅크가 이전 캐쉬리필요구를 처리 중이라면, 캐쉬리필요구는 뱅크가 프리될 때까지 요구 큐에 입력(enqueue) 한다.(77)However, if the desired bank is already processing the previous cache request, the cache request enters the request queue until the bank is free.

그러면 캐쉬리필요구가 발생되지 않는 즉 뱅크가 프리(free)할 때까지 기다린다.(78) 그리고 뱅크가 프리되면 캐쉬리필요구를 요구 큐에서 출력(dequeue) 한다.(79) 큐에서 출력한 요구는 다음에는 상기 72단계로 되돌아가서 다시 서브어레이(37)를 디코딩하게 된다.It waits until a cache request is not generated, i.e. until the bank is free (78). When the bank is free, it dequeues the cache request from the request queue. Next, the process returns to step 72 to decode the subarray 37 again.

이와 같이 서브어레이(37) 디코딩이 완료되면, 디코딩된 메모리번지부(60)의 뱅크 필드와 서브어레이 필드를 인덱스 정보로 하여 로번지 테이블부(64)를 엑세스하게 되는데 이때, 테이블부(64)가 가지고 있는 로번지 정보와 이미 발생된 캐쉬리필요구에서 요구되는 로번지 정보가 동일한지를 비교하게 된다.When the decoding of the subarray 37 is completed as described above, the address table 64 is accessed by using the bank field and the subarray field of the decoded memory address unit 60 as index information. In this case, the table unit 64 is accessed. It compares the log address information that is with the log address information required in the generated cache request.

한편, 이때는 캐쉬리필요구가 도착하였을 때, 감지증폭기(35)에 보유된 D램 페이지 데이터와 동일한 지를 비교하는 추가적인 시간이 필요하다. 이 시간은 1차 캐쉬엑세스 시간과 비슷하기 때문에 디지털 프로세서의 동기적 처리에 따라서 하나의 프로세서 싸이클(processor cycle)로 처리할 수 있다.On the other hand, in this case, when the cache request is received, additional time is required to compare whether the same as the DRAM page data held in the sense amplifier 35. Since this time is similar to the first cache access time, it can be processed in one processor cycle according to the synchronous processing of the digital processor.

상기의 비교에 의하여 이미 발생된 메모리 요구가 로번지 테이블부(64)의 값과 동일한지 즉 페이지 엑세스 성공(페이지 히트; page hit)을 비교부(68)에서 비교함으로써 판단하게 된다.(74)It is determined by comparing the page access success (page hit) in the comparison section 68 that the memory request already generated by the comparison is equal to the value of the log address table section 64 (74).

상기 74단계에서 비교되는 메모리 요구와 로번지 테이블부(64)의 값이 동일하지 않다면 일반 메모리 엑세스 모드(conventional mode)로 동작된다. 즉, 동일하지 않은 경우에는 프리차지와 로엑세스를 수행한다.(75)If the memory request compared in step 74 and the value of the log address table unit 64 are not the same, the memory device operates in a general memory access mode. That is, if they are not the same, precharge and low access are performed.

그러나 상기 74 단계에서 비교되는 메모리 요구와 로번지 테이블부(64)의 값이 동일한 것으로 판단되면 D램 페이지 엑세스 성공 모드(page hit mode)로 동작되고, 이에 따라서 75 단계에서 수행되는 프리차지와 로엑세스 없이 칼럼엑세스만을 수행한다.(76)However, if it is determined that the memory request compared with the value of the low address table 64 in step 74 is the same, the operation is performed in a DRAM page access success mode (page hit mode), and accordingly, the precharge and low operations performed in step 75 are performed. Perform only column access without access. (76)

결국 메모리 요구와 로번지 테이블부(64)의 값이 동일한지를 비교에 따라서 프리차지와 로엑세스 없이 칼럼엑세스만을 수행하는 메모리 엑세스에 의하여 선택된 서브어레이(37)로부터 데이터가 인출되며, 이에 따라서 메모리로부터 데이터를 인출하는 시간이 크게 감소된다.As a result, the data is withdrawn from the subarray 37 selected by the memory access that performs only column access without precharge and low access according to a comparison between the memory request and the value of the low address table 64. The time for fetching data is greatly reduced.

또한, 본 발명은 계층적 다중-뱅크 D램에 첨가되어 동작할 수도 있다. 즉 각각의 서브어레이들은 반독립적 뱅크로써 동작하면서, 프리차지 연기(delay)를 수행하여 뱅크 충돌률은 낮추고, D램 페이지 엑세스 성공률은 증가시킬 수 있다. 도 7에서는 일반적인 뱅크 구조를 기반으로 하는 일실시예의 동작 모델만을 나타내었다.In addition, the present invention may operate in addition to hierarchical multi-bank DRAM. That is, each subarray may operate as a semi-independent bank, and may perform precharge delay to lower a bank collision rate and increase a DRAM page access success rate. 7 illustrates only an operation model of an embodiment based on a general bank structure.

또한 캐쉬 미스 비율이 높은 응용을 위해서는 요구 큐에 저장된 대기 요구들의 번지를 살펴보고, 동일 로를 가지는 요구들끼리 클러스터링(clustering)하는 재순서(reordering)를 수행함으로써 D램 페이지 엑세스 성공률을 더욱 더 증대시킬 수 있다. 그러나 캐쉬 성공 비율이 높은 중앙제어부(CPU) 중심의 응용일 경우에는 D램 엑세스 비율이 높지 않으며, 요구 큐에 대기(pending)하는 요구 수가 적으므로 요구 재순서는 큰 의미를 가지지 않는다.In addition, for high cache miss rates, the number of waiting requests stored in the request queue is examined, and the success rate of DRAM page access is further increased by reordering clustering requests that have the same path. You can. However, in the case of central CPU (CPU) application with high cache success rate, the DRAM access rate is not high and the request reordering does not have much meaning because the number of requests waiting in the request queue is small.

이하, 본 발명에 따른 메모리 엑세스 제어방법에서의 캐쉬리필시간을 산출하는 실시예를 설명하며, 본 발명에서는 메모리 엑세스 요구나 D램 엑세스 요구는 모두 캐쉬를 가진 메모리 시스템이므로 캐쉬리필요구로 가정한다.Hereinafter, an embodiment of calculating a cache refill time in a memory access control method according to the present invention will be described. In the present invention, a memory access request or a DRAM access request are assumed to be cache needs since all memory access requests and DRAM access requests are cache systems.

본 발명에서 분석적 모델은 M/D/1 큐잉(queueing)의 모델을 따르며, i번째 D램 뱅크의 서비스를 받거나 요구 큐에서 기다리고 있는 요구들의 개수를 Ni라고 하면, Ni는 수학식 1로 되고, 캐쉬메모리를 가지는 컴퓨터 시스템 아키텍처에서 캐쉬리필시간(Tcache_refill)은 캐쉬미스 발생시의 실패 비용을 1캐쉬 블록 채우기 시간으로 정의하면 수학식 2로 표현된다.In the present invention, the analytical model follows the model of M / D / 1 queuing, and when the number of requests received from the i-th DRAM bank or waiting in the request queue is N i , N i is represented by Equation 1 below. In a computer system architecture having a cache memory, the cache refill time T cache_refill is represented by Equation 2 when the failure cost of the cache miss is defined as one cache block fill time.

이때, 엑세스 요구가 D램 뱅크에 보내진 후부터 데이터가 D램 뱅크에 출력되기 시작하는 시간을 의미하는 데이터 출력시간(TDRAM_access)의 근본적인 요소는 tRAC와 tRP시간으로 나뉜다. 여기서 프리차지 시간은 tRP, 로엑세스 시간은 tRCD, 칼럼 엑세스 시간은 tCAC이며, tRCD와 tCAC의 합으로서 로칼럼 엑세스시간은 tRAC이다.At this time, the fundamental element of the data output time (T DRAM_access ), which means the time when data starts to be output to the DRAM bank after the access request is sent to the DRAM bank, is divided into t RAC and t RP time. Here, the precharge time is t RP , the low access time is t RCD , the column access time is t CAC , and the local column access time is t RAC as the sum of t RCD and t CAC .

로칼럼 엑세스 시간(tRAC)과 프리차지시간(tRP)은 D램의 물리적 특성에 의하여 많이 줄일 수 없는 요소이다. 최근에 높은 대역폭을 제공하는 새로운 D램들은 물리적 제약을 받는 로엑세스시간(tRCD), 칼럼엑세스시간(tCAC), 프리차지시간(tRP) 등을 줄이는 것이 아니라 엑세스 비율을 늘이는 것이다. 예를 들어 FPM D램, EDO D램, SD램 등과 같이 감지증폭기의 데이터를 활용하는 페이지 모드 또는 이것을 기반으로 하는 발전된 모드를 사용하여 연속적인 데이터 엑세스 비율을 늘이는 것이다. 더 나아가 칼럼 번지 파이프라인(pipeline), 선인출(prefetch), 다중-뱅크 구조를 사용하여 전체 캐쉬리필시간(Tcache_refill)을 줄이는 것이다.Local column access time (t RAC ) and precharge time (t RP ) is a factor that can not be greatly reduced by the physical characteristics of the DRAM. In recent years, new DRAMs that offer high bandwidth do not reduce physically constrained row access time (t RCD ), column access time (t CAC ), or precharge time (t RP ), but rather increase access rates. For example, the continuous data access rate can be increased by using a page mode that utilizes the data of the sense amplifier, such as an FPM DRAM, an EDO DRAM, or an SD RAM, or an advanced mode based on it. Furthermore, the column cache pipeline, prefetch, and multi-bank structure are used to reduce the total cache refill time (T cache_refill ).

그러나 온칩 D램을 가지는 컴퓨터 시스템에서는 1 캐쉬 블록을 엑세스하는 데 페이지 모드는 필요 없어진다. 왜냐하면 메모리 버스 넓이가 캐쉬 블록 크기까지 증가할 수 있기 때문에 새로운 온칩 D램 구조와 메커니즘이 필요하다.In computer systems with on-chip DRAM, however, the page mode is not required to access one cache block. Because memory bus widths can increase to cache block sizes, new on-chip DRAM structures and mechanisms are needed.

한편, 엑세스 요구가 D램 뱅크에 보내진 후부터 데이터가 D램 뱅크에 출력되기 시작하는 시간을 의미하는 데이터 출력시간(TDRAM_access)[cpu cycles]는 수학식 3과 같이 표현된다.On the other hand, the data output time (T DRAM_access ) [cpu cycles], which represents a time at which data begins to be output to the DRAM bank after the access request is sent to the DRAM bank, is expressed by Equation 3 below.

그리고 D램 엑세스 요구가 도착하면 이미 서비스를 기다리는 이전 요구들이 모두 서비스 될 때까지 기다려야만 한다. 따라서 요구 큐에서 서비스를 기다리는 캐쉬리필요구들의 평균 지연 시간을 의미하는 대기시간(Tpending)은 수학식 4와 같이 표현된다.When a DRAM access request arrives, it must wait until all previous requests that are already waiting for service have been serviced. Therefore, the waiting time T pending , which means the average delay time of cache requesters waiting for service in the request queue, is represented by Equation 4.

이때 오프칩 D램을 가지는 일반적인 컴퓨터 시스템에서는 메모리 버스 넓이와 지연 제약에 의하여 메모리 엑세스 요구가 많이 발생하지 않아서 뱅크충돌률(βi)은 크지 않으며 따라서 성능 제약 요소가 아니다. 그러나, 온칩 D램을 가지는 컴퓨터 시스템에서는 늘어난 내부 메모리 대역폭을 활용하기 위해 메모리 엑세스 요구를 많이 발생할 수 있으며 그때는 뱅크충돌률(βi)이 클 수 있으므로 성능 제약 요소가 된다.In this case, in a general computer system having off-chip DRAM, memory access requirements are not generated by memory bus width and delay constraints, so the bank collision rate beta i is not large and therefore is not a performance constraint. However, in a computer system having an on-chip DRAM, many memory access requests may be generated to take advantage of the increased internal memory bandwidth, and then the bank collision rate beta i may be large, which is a performance constraint.

또한 넌 블럭킹(non blocking) 메모리 시스템, 다중이슈 슈퍼스칼라 프로세서, 다중프로세서 등과 온칩 D램으로 구성된 고성능 컴퓨터 시스템의 경우에는, 동시 다발의 메모리 요구를 발생할 수 있기 때문에 뱅크 개수가 작은 D램 구조를 가지면 뱅크충돌률(βi)은 커질 수밖에 없다. 따라서 온칩 D램 구조를 가지는 컴퓨터 시스템에서는 뱅크충돌률(βi)을 감소시키는 새로운 D램 구조를 채택할 수 있다.In addition, a high-performance computer system consisting of a non blocking memory system, a multi-issue superscalar processor, a multiprocessor, and an on-chip DRAM may generate multiple memory requirements simultaneously. The bank collision rate beta i must be large. Therefore, a computer system having an on-chip DRAM structure can adopt a new DRAM structure that reduces the bank collision rate beta i .

감지증폭기는 보유된 데이터 중에서 캐쉬 블록에 해당하는 데이터를 한번에 전송할 수 있으므로, 감지증폭기의 데이터를 한번 엑세스한 후 곧바로 프리차지한다면, 요구하는 데이터를 i번째 D램 뱅크의 감지증폭기가 이미 보유하고 있을 확률, 즉 D램 페이지 엑세스 성공률(γi)은 0이 된다.Since the sense amplifier can transmit the data corresponding to the cache block at once, if it is precharged immediately after accessing the data of the sense amplifier once, the sense amplifier of the i-th DRAM bank may already have it. The probability, ie, the DRAM page access success rate γ i , is zero.

그런데 온칩 D램의 감지증폭기가 프리차지되기 전에, 다음으로 이어지는 요구에서 원하는 데이터가 감지증폭기에 포함되어 있다면, D램 엑세스는 칼럼엑세스 시간(tCAC)으로 해결될 수 있다.However, before the on-chip DRAM sense amplifier is precharged, if the desired data is included in the sense amplifier in a subsequent request, the DRAM access may be solved by the column access time t CAC .

또한 본 발명에 따르면 D램 페이지 엑세스 성공률(γi)이 양의 값을 가지게 되고 데이터 출력시간(TDRAM_access)과 대기시간(Tpending)은 각각 수학식 5와 수학식 6으로 표현될 수 있다.In addition, according to the present invention, the DRAM page access success rate γ i has a positive value, and the data output time T DRAM_access and the waiting time T pending may be represented by Equations 5 and 6, respectively.

또한, 메모리 버스를 통해서 출력된 데이터를 전송하는 시간과 메모리 버스를 중재하는 시간과 캐쉬리필요구를 요구 큐에 입력하고 출력하는 시간의 합을 의미하는 오버헤드시간(Toverhead)은 수학식 7로 표현될 수 있다.In addition, the overhead time (T overhead ), which represents the sum of the time for transmitting the data output through the memory bus, the time for arbitrating the memory bus, and the time for inputting and outputting the cache request to the request queue, is expressed by Equation 7. Can be expressed.

여기서 데이터 전송시간(ttransfer)[cpu cycles]는 1 캐쉬 블록의 데이터를 D램 뱅크와 1차 캐쉬 사이에서 메모리 버스를 통해 전송하는 시간이고, 버스중재시간(tarb)은 프로세서가 메모리 버스를 중재하는 시간이며, 버퍼링시간(tbuf)은 프로세서에서 D램으로 가는 요구와 D램에서 1차 캐쉬로 가는 데이터를 버퍼링하는데 요구되는 시간이다.Here, the data transfer time (t transfer ) [cpu cycles] is the time to transfer the data of one cache block between the DRAM bank and the primary cache through the memory bus, and the bus arbitration time (t arb ) is the processor's memory bus. The arbitration time, buffering time (t buf ) is the time required to buffer the data from the processor to the DRAM and the data from the DRAM to the primary cache.

상기 데이터 전송시간(ttransfer)[cpu cycles]는 1 캐쉬 블록의 데이터를 D램 뱅크와 1차 캐쉬 사이에서 메모리 버스를 통해 전송하는 시간을 의미하는데 수학식 8로 표현된다.The data transfer time t transfer [cpu cycles] means a time for transferring data of one cache block through the memory bus between the DRAM bank and the primary cache.

실시예로써 메모리 버스 클럭주파수(FBUS)는 중앙제어부 클럭주파수(FCPU)와 같이 200MHz로 가정하고, 메모리버스넓이(W)[bytes]는 온칩 D램에서는 핀 제약이 사라지므로 캐쉬 블록 크기와 같은 크기인 W=L(여기서 L은 1차 캐쉬 블록 크기[bytes]이다.)로 설계한다. 이와 같이 설계하면 종래의 오프칩 D램 구조를 가지는 컴퓨터 시스템에서와 달리, 엑세스 지연시간(Taccess_latency)에서 데이터 전송시간(ttransfer)이 차지하는 비중은 매우 작아지고 데이터 출력시간(TDRAM_access)의 비중은 매우 커지게 된다. 이때, 실시예에서 오버헤드시간(toverhead)은 3 CPU cycle로 가정한다.In an embodiment, the memory bus clock frequency (F BUS ) is assumed to be 200 MHz, such as the central control clock frequency (F CPU ), and the memory bus width (W) [bytes] is the same as the block size of the cache because the pin restriction is eliminated in the on-chip DRAM. Design with the same size, W = L (where L is the primary cache block size [bytes]). In this design, unlike a computer system having a conventional off-chip DRAM structure, the data transfer time (t transfer ) in the access delay time (T access_latency ) becomes very small and the share of the data output time (T DRAM_access ) Becomes very large. At this time, in the embodiment, the overhead time t overhead is assumed to be 3 CPU cycles.

따라서 종래 기술에 따른 일반적인 D램 엑세스 제어 방식을 사용하였을 때의 캐쉬리필시간은 수학식 3, 4, 7로 구할 수 있고, 본 발명에서 다수의 블록 엑세스 요구에 대하여 D램 페이지 엑세스 성공이 발생하게 되면, 캐쉬리필시간은 수학식 5, 6, 7로 구할 수 있다.Therefore, the cache refill time when using the conventional DRAM access control method according to the prior art can be obtained by equations (3), (4), and (7). In the present invention, the DRAM page access success occurs for a plurality of block access requests. If so, the cache refill time can be obtained by equations (5), (6) and (7).

도 8은 본 발명의 뱅크 충돌률과 D램 페이지 엑세스 성공률의 변화에 따른 캐쉬리필시간의 변화를 나타낸 도면이다.8 is a view illustrating a change in cache refill time according to a change in a bank collision rate and a DRAM page access success rate according to the present invention.

여기서, 캐쉬리필요구가 i번째 D램 뱅크에서 서비스 받을 확률을 나타내는 서비스확률(αi)은 모든 뱅크 i에 대해서 동일한 값을 갖는다고 가정한다. 즉 도시된 바와 같이, D램 뱅크 충돌률이 증가할 수록 D램 엑세스 시간은 기하급수적으로 증가한다. 이때 D램 뱅크의 개수를 늘이면 뱅크 충돌률은 감소할 수 있지만 대신 전력과 면적의 오버헤드를 가지므로 트레이드오프(trade off)가 필요하다.Here, it is assumed that the service probability α i representing the probability that the cache required phrase is serviced in the i-th DRAM bank has the same value for all banks i. That is, as the DRAM bank collision rate increases, the DRAM access time increases exponentially. In this case, increasing the number of D-RAM banks may reduce the bank collision rate, but it requires a trade-off because it has power and area overhead.

한편, 다수의 블록 엑세스 요구들 사이의 D램 페이지 엑세스 성공률은 온칩 D램이 일반 D램의 엑세스 제어 방식을 가지면 0이지만, 본 발명과 같은 엑세스 제어 방식과 장치를 사용하면 D램 페이지 엑세스 성공률이 증가하며, D램 엑세스 시간은 상당히 많이 감소한다. 또한 D램 페이지 엑세스 성공률이 증가되면 상대적으로 뱅크 충돌 비율도 감소하기 때문에 전체적인 성능 향상을 이룰 수 있다.Meanwhile, the DRAM page access success rate between a plurality of block access requests is 0 when the on-chip DRAM has an access control scheme of a general DRAM. However, when the access control scheme and the device of the present invention are used, the DRAM page access success rate is increased. Increasing DRAM access time is significantly reduced. In addition, as the DRAM page access success rate increases, the bank collision rate decreases relatively, resulting in overall performance improvement.

본 발명에서는 분석적 모델에서 표현된 바와 같이 D램 페이지 엑세스 성공률을 증가시키는 D램 엑세스 시스템과 그 제어방법을 사용하여 온칩 D램의 성능을 향상시킨다.According to the present invention, the performance of an on-chip DRAM is improved by using a DRAM access system and a control method thereof to increase the DRAM page access success rate as expressed in the analytical model.

도시된 도 8에서는 실시예로서, 중앙제어부의 클럭 주파수(FCPU)는 200MHz로 정의하고 로엑세스 시간(tRCD)은 30ns(6 CPU cycle), 칼럼엑세스 시간(tCAC)은 30ns(6 CPU cycle), 로칼럼엑세스 시간(tRAC)은 60ns(12 CPU cycle), 프리차지시간(tRP)은 30ns(6 CPU cycle)를 사용한다.In FIG. 8, as an embodiment, the clock frequency (F CPU ) of the central controller is defined as 200 MHz, the low access time t RCD is 30 ns (6 CPU cycles), and the column access time t CAC is 30 ns (6 CPUs). cycle), the local column access time (t RAC ) is 60ns (12 CPU cycles), and the precharge time (t RP ) is 30ns (6 CPU cycles).

도면과 명세서는 단지 본 발명의 예시적인 것으로서, 이는 단지 본 발명을 설명하기 위한 목적에서 사용된 것이지 의미한정이나 특허청구범위에 기재된 본 발명의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.The drawings and specification are merely exemplary of the invention, which are used for the purpose of illustrating the invention only and are not intended to limit the scope of the invention as defined in the appended claims or claims. Therefore, those skilled in the art will understand that various modifications and equivalent other embodiments are possible from this. Therefore, the true technical protection scope of the present invention will be defined by the technical spirit of the appended claims.

본 발명에 따르면, 캐쉬리필요구에 따른 하나의 블록 엑세스 요구를 처리한 후에, 중앙제어부로부터 상기 감지증폭기에 상기 블록 데이터를 포함하는 페이지 데이터가 보유된 상태에서, 동일한 상기 페이지 데이터가 포함하는 임의의 블록 데이터를 요구하는 두 번째 상기 캐쉬리필요구가 발생되는 경우에, 프리차지와 로엑세스를 하지 않고, 감지증폭기에 보유된 페이지 데이터에서의 칼럼 엑세스에 의하여 두 번째 캐쉬리필요구를 처리하기 때문에 D램 페이지 엑세스 시간이 감소하여 온칩 D램의 성능이 향상되는 장점이 있다.According to the present invention, after processing one block access request according to a cache request, any page data included in the same page data including the block data is held in the sense amplifier from the central controller. In the case where the second cache request is required for the block data, the second cache request is processed by the column access in the page data held in the sense amplifier without precharging and low access. The page access time is reduced to improve the performance of the on-chip DRAM.

Claims (4)

로(row)와 칼럼(column) 번지에 의하여 엑세스되는 데이터가 저장되는 서브어레이와, 상기 서브어레이로부터 데이터가 엑세스될 때 임시 저장되는 감지증폭기를 포함하는 메모리뱅크부;A memory bank unit including a subarray in which data accessed by a row and a column address are stored, and a sense amplifier temporarily stored when data is accessed from the subarray; 상기 메모리뱅크부에서 소정의 서브어레이에 저장된 데이터를 중앙제어부의 제어에 의하여 엑세스하기 위한 번지(address)정보를 포함하는 메모리번지부;A memory address unit including address information for accessing data stored in a predetermined subarray in the memory bank unit by control of a central controller; 상기 메모리번지부의 번지정보에 의하여 선택되며 상기 메모리뱅크부의 임의의 로번지에 저장된 페이지 데이터가 상기 감지증폭기에 보유되어 있는 지를 나타내는 로번지정보를 포함하는 로번지 테이블부; 및A low address table unit selected by address information of the memory address unit and including low address information indicating whether page data stored in any low address of the memory bank unit is retained in the detection amplifier; And 상기 메모리번지부에 의하여 선택되어 출력되는 상기 로번지 테이블부의 상기 로번지정보와 상기 메모리번지부에 포함되는 번지정보를 각각 비교하여 동일한 로번지를 엑세스하는 것으로 판단되면, 상기 칼럼 번지만에 의하여 상기 감지증폭기의 페이지 데이터를 엑세스하는 비교부를 포함하는 것을 특징으로 하는 메모리 엑세스 시스템.If it is determined that the same address is accessed by comparing the address information included in the memory address unit with the low address table selected and output by the memory address unit, the sensing is performed by the column address only. And a comparator for accessing the page data of the amplifier. 제1항에 있어서, 상기 로번지 테이블부의 로번지정보는,According to claim 1, Low address information of the low address table unit, 적어도 하나 이상의 뱅크로 이루어지는 상기 메모리뱅크부에서, 각각의 상기 뱅크의 감지증폭기에 보유되는 로번지 데이터의 해당 로번지정보를 포함하는 것을 특징으로 하는 메모리 엑세스 시스템.And the corresponding row address information of the row address data held in the sense amplifiers of each of the banks, in the memory bank unit including at least one bank. 프리차지, 로엑세스 그리고 칼럼엑세스에 의하여 중앙제어부로부터 발생되는 캐쉬리필요구가 처리되는 메모리 엑세스 제어방법에 있어서,In the memory access control method, the cache request generated from the central controller is processed by precharge, row access and column access. 상기 캐쉬리필요구에 따른 하나의 블록 엑세스 요구를 처리한 후에, 상기 감지증폭기의 상기 블록 데이터를 포함하는 페이지 데이터가 보유된 상태에서 동일한 상기 페이지 데이터가 포함하는 임의의 블록 데이터를 요구하는 두 번째 캐쉬리필요구가 발생되면, 상기 칼럼 엑세스에 의하여 상기 감지증폭기에 보유되는 페이지 데이터에서 상기 두 번째 캐쉬리필요구를 처리하는 것을 특징으로 하는 메모리 엑세스 제어방법.After processing one block access request according to the cache request, a second cache requesting any block data included in the same page data while the page data including the block data of the sense amplifier is retained. And a second cache request from the page data held by the sense amplifier by the column access when the request is generated. 프리차지, 로엑세스에 의하여 감지증폭기에 블록데이터를 포함하는 페이지 데이터가 저장되고, 상기 페이지 데이터로부터 칼럼엑세스에 의하여 캐쉬리필요구가 처리되는 메모리 엑세스 제어방법에 있어서,A memory access control method in which page data including block data is stored in a sense amplifier by precharge and low access, and cache requests are processed by column access from the page data. 상기 캐쉬리필요구에 따라서 하나의 블록 엑세스를 처리한 후에, 감지 증폭기에 보유된 상기 블록데이터를 프리차지하지 않고, 상기 감지증폭기에 상기 블록 데이터를 포함하는 페이지 데이터가 보유된 상태에서, 상기 페이지 데이터가 포함하는 임의의 블록 데이터를 요구하는 두 번째 캐쉬리필요구가 발생되면, 상기 감지증폭기에 보유되는 페이지 데이터를 요구하는 두 번째 캐쉬리필요구가 발생되면, 상기 감지증폭기에 보유되는 상기 페이지 데이터로부터 블록 데이터가 칼럼 엑세스되는 시간이 아래의 식에 의하여 계산되는 것을 특징으로 하는 메모리 엑세스 제어방법.After processing one block access according to the cache necessity, the page data in the state in which page data including the block data is held in the sense amplifier without precharging the block data held in the sense amplifier. If a second cache request is generated that requires any block data that contains a second cache request, and a second cache request is required to request page data held by the sense amplifier, a block is generated from the page data held by the sense amplifier. Memory access control method, characterized in that the time the data is column access is calculated by the following equation. 이때, TDRAM_access는 데이터 출력시간, tRP은 프리차지 시간, tRCD은 로엑세스 시간, tCAC은 칼럼 엑세스 시간, tRAC은tRCD와 tCAC의 합으로서 로칼럼 엑세스시간, αi는 캐쉬리필요구가 i번째 D램 뱅크에서 서비스 받을 확률, βi는 캐쉬리필요구가 i번째 D램 뱅크에서 서비스 받고 있는 이전 요구와 충돌을 일으킬 확률, γi은 요구하는 데이터를 i번째 D램 뱅크의 감지 증폭기가 이미 보유하고 있을 확률이다.Where T DRAM_access is the data output time, t RP is the precharge time, t RCD is the low access time, t CAC is the column access time, t RAC is the sum of t RCD and t CAC , and the local column access time, α i is the cache. The probability that the request needs to be serviced in the i-th DRAM bank, β i is the probability that the cache request collides with the previous request being serviced in the i-th DRAM bank, and γ i is the required data of the i-th DRAM bank. It is the probability that the sense amplifier already holds.
KR1019990015429A 1999-04-29 1999-04-29 Memory access system and method thereof KR100328726B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019990015429A KR100328726B1 (en) 1999-04-29 1999-04-29 Memory access system and method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019990015429A KR100328726B1 (en) 1999-04-29 1999-04-29 Memory access system and method thereof

Publications (2)

Publication Number Publication Date
KR20000067533A true KR20000067533A (en) 2000-11-25
KR100328726B1 KR100328726B1 (en) 2002-03-20

Family

ID=19582907

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019990015429A KR100328726B1 (en) 1999-04-29 1999-04-29 Memory access system and method thereof

Country Status (1)

Country Link
KR (1) KR100328726B1 (en)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100365101B1 (en) * 2000-12-08 2002-12-18 삼성전기주식회사 Method for copy data into disk-on-chip of web-box
KR100921683B1 (en) * 2007-12-17 2009-10-15 한국전자통신연구원 Method Of Data Storing In Memory Page With Key-Value Data Model
KR100950871B1 (en) * 2002-08-05 2010-04-06 마이크론 테크놀로지 인코포레이티드 Memory hub and access method having internal row caching
US8195918B2 (en) 2002-06-07 2012-06-05 Round Rock Research, Llc Memory hub with internal cache and/or memory access prediction
US8239607B2 (en) 2004-06-04 2012-08-07 Micron Technology, Inc. System and method for an asynchronous data buffer having buffer write and read pointers
US8504782B2 (en) 2004-01-30 2013-08-06 Micron Technology, Inc. Buffer control system and method for a memory system having outstanding read and write request buffers
US8589643B2 (en) 2003-10-20 2013-11-19 Round Rock Research, Llc Arbitration system and method for memory responses in a hub-based memory system

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS618785A (en) * 1984-06-21 1986-01-16 Fujitsu Ltd Access control system for storage device
KR900007998B1 (en) * 1985-10-29 1990-10-23 후지쓰 가부시끼가이샤 Random access memory device formed on a semiconductor substrate having an array of memory cells divided into sub-arrays
JPH07120312B2 (en) * 1987-10-07 1995-12-20 株式会社日立製作所 Buffer memory controller
US5574876A (en) * 1992-09-18 1996-11-12 Hitachi, Ltd. Processor system using synchronous dynamic memory
JPH07105082A (en) * 1993-10-05 1995-04-21 Hitachi Ltd High-speed memory system
JP3421441B2 (en) * 1994-09-22 2003-06-30 東芝マイクロエレクトロニクス株式会社 Dynamic memory

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100365101B1 (en) * 2000-12-08 2002-12-18 삼성전기주식회사 Method for copy data into disk-on-chip of web-box
US8195918B2 (en) 2002-06-07 2012-06-05 Round Rock Research, Llc Memory hub with internal cache and/or memory access prediction
US8499127B2 (en) 2002-06-07 2013-07-30 Round Rock Research, Llc Memory hub with internal cache and/or memory access prediction
KR100950871B1 (en) * 2002-08-05 2010-04-06 마이크론 테크놀로지 인코포레이티드 Memory hub and access method having internal row caching
US8589643B2 (en) 2003-10-20 2013-11-19 Round Rock Research, Llc Arbitration system and method for memory responses in a hub-based memory system
US8504782B2 (en) 2004-01-30 2013-08-06 Micron Technology, Inc. Buffer control system and method for a memory system having outstanding read and write request buffers
US8239607B2 (en) 2004-06-04 2012-08-07 Micron Technology, Inc. System and method for an asynchronous data buffer having buffer write and read pointers
KR100921683B1 (en) * 2007-12-17 2009-10-15 한국전자통신연구원 Method Of Data Storing In Memory Page With Key-Value Data Model

Also Published As

Publication number Publication date
KR100328726B1 (en) 2002-03-20

Similar Documents

Publication Publication Date Title
US6604180B2 (en) Pipelined memory controller
US6622228B2 (en) System and method of processing memory requests in a pipelined memory controller
KR100724557B1 (en) Out of order dram sequencer
US6088772A (en) Method and apparatus for improving system performance when reordering commands
EP2223217B1 (en) System, apparatus, and method for modifying the order of memory accesses
JP3323212B2 (en) Data prefetching method and apparatus
US6317811B1 (en) Method and system for reissuing load requests in a multi-stream prefetch design
US5752272A (en) Memory access control device with prefetch and read out block length control functions
US6049855A (en) Segmented memory system employing different interleaving scheme for each different memory segment
EP0978044A2 (en) Method and apparatus for reordering commands and restoring data to original command order
US6202133B1 (en) Method of processing memory transactions in a computer system having dual system memories and memory controllers
KR100328726B1 (en) Memory access system and method thereof
CN115885268A (en) DRAM command tailing management
US6836823B2 (en) Bandwidth enhancement for uncached devices
CN115605853A (en) Efficient memory bus management
US6385687B2 (en) Method and apparatus for simultaneously accessing the tag and data arrays of a memory device
JPH09319657A (en) Processor provided with buffer for reading instruction
EP0921468A1 (en) Memory control using memory state information for reducing access latency
AU2002326916A1 (en) Bandwidth enhancement for uncached devices

Legal Events

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