KR19990003292A - How to Retrieve Data from Cache Memory - Google Patents
How to Retrieve Data from Cache Memory Download PDFInfo
- Publication number
- KR19990003292A KR19990003292A KR1019970027131A KR19970027131A KR19990003292A KR 19990003292 A KR19990003292 A KR 19990003292A KR 1019970027131 A KR1019970027131 A KR 1019970027131A KR 19970027131 A KR19970027131 A KR 19970027131A KR 19990003292 A KR19990003292 A KR 19990003292A
- Authority
- KR
- South Korea
- Prior art keywords
- tag
- virtual address
- address
- cache memory
- index
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0804—Addressing 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
본 발명은 캐시 메모리의 데이타 인출 방법에 관한 것으로 것으로, 중앙처리 장치로부터 가상 어드레스가 입력되면, 상기 캐시 메모리에 저장되어 있는 제 1 인덱스 값과 상기 가상 어드레스에 포함된 제 2인덱스를 비교하고, 또 상기 제 1태그의 제 1가상 어드레스 태그값과 상기 가상 어드레스에 포함된 제 2 태그의 제 2가상 어드레스 태그값을 비교하여, 상기 제 1 인덱스와 상기 제 2인덱스가 일치하고, 또 상기 제 1가상 어드레스 태그값과 상기 제 2가상 어드레스 태그값이 일치하면, 상기 제 1태그의 제 1물리적 어드레스 태그값과 상기 가상 어드레스로부터 발생한 물리적 어드레스의 제 2물리적 어드레스 태그값을 비교하여 일치하는 경우에 상기 제 1인덱스와 제 1태그를 어드레스로 갖는 캐시데이타가 출력되도록 함으로써, 캐시 메모리의 액세스 단계에서 가상 어드레스와 물리적 어드레스의 일치 여부를 판단 하도록 하여 히트율을 향상시키도록 하는 효과를 제공한다.The present invention relates to a data retrieval method of a cache memory. When a virtual address is input from a central processing unit, a first index value stored in the cache memory is compared with a second index included in the virtual address. By comparing the first virtual address tag value of the first tag with the second virtual address tag value of the second tag included in the virtual address, the first index and the second index coincide, and the first virtual If the address tag value and the second virtual address tag value match, the first physical address tag value of the first tag and the second physical address tag value of the physical address generated from the virtual address are compared and matched. By accessing the cache data having the first index and the first tag as addresses, the access stage of the cache memory The system provides an effect of improving the hit rate by determining whether the virtual address and the physical address match.
Description
본 발명은 캐시 메모리의 데이타 인출 방법에 관한 것으로, 특히 캐시 메모리의 액세스 단계에서 가상 어드레스와 물리적 어드레스의 일치 여부를 판단하도록 하여 히트율을 향상시킨 캐시 메모리의 데이타 인출 방법에 관한 것이다.The present invention relates to a data retrieval method of the cache memory, and more particularly, to a data retrieval method of the cache memory to improve the hit rate by determining whether the virtual address and the physical address match in the cache memory access step.
캐시 메모리 (Cache Memory)는 고속으로 처리되는 중앙처리 장치와 상대적으로 저속인 주기억 장치 사이에서 일시적으로 자료나 정보를 저장하는 고속 기억장치이다.Cache memory is a high speed memory device that temporarily stores data or information between a central processing unit that is processed at high speed and a relatively low speed main memory device.
일반적으로 사용되는 주기억 장치인 디램(DRAM)은 가격이 저렴한 대신 속도가 느리기 때문에, 가격은 비싸지만 속도가 상대적으로 매우 빠른 에스램(SRAM)을 적은 용량 구비하여 사용하는 것이다.Since DRAM, which is a commonly used main memory device, is inexpensive and slow, it is used with a small amount of SRAM, which is expensive but relatively fast.
도 1은 종래의 캐시 메모리를 나타낸 블록도이다.1 is a block diagram illustrating a conventional cache memory.
가상 어드레스(10)는 가상 페이지 번호(VPN)와 오프셋(off-set)으로 구성된다.The virtual address 10 is composed of a virtual page number (VPN) and an offset (off-set).
가상 페이지 번호(VPN)는 페이지 방식의 가상 기억 장치에서 프로그램이나 데이타가 일정 크기로 분할되어 페이지로 존재할 때에 부여된 번호이다.The virtual page number (VPN) is a number assigned when a program or data is divided into a predetermined size and present as a page in a page-type virtual memory device.
오프셋은 기억 장치의 주소 공간이 페이지나 세그먼트 단위로 나누어져 있을때 한 페이지나 한 세그먼트의 시작 주소로부터의 상대적인 위치를 나타내는 값으로서 물리적 어드레스에 대한 정보로 변환되어 캐시 메모리에 전달된다.The offset is a value indicating a relative position from the start address of one page or one segment when the address space of the storage device is divided into pages or segments. The offset is converted into information about a physical address and transferred to the cache memory.
상기 가상 어드레스(10)는 테이블 룩업 버퍼(20)에 입력되는데, 상기 테이블 룩업 버퍼(20)에서는 상기 가상 어드레스(10)에 대응하는 물리적 어드레스(40)를 출력한다.The virtual address 10 is input to the table lookup buffer 20, and the table lookup buffer 20 outputs a physical address 40 corresponding to the virtual address 10.
상기 물리적 어드레스(40)는 실제 페이지 번호(PPN)와 오프셋으로 구성되는데, 상기 실제 페이지 번호(PPN )에서는 물리적 어드레스(40) 가운데 캐시 메모리(30)의 태그(tag) 부분에 저장될 태그값(PPN-C')이 출력된다.The physical address 40 is composed of an actual page number (PPN) and an offset. In the actual page number (PPN), a tag value (to be stored in a tag portion of the cache memory 30) of the physical address 40 ( PPN-C ') is output.
캐시 메모리(30)는 다수개의 라인으로 이루어지는데, 라인은 캐시 메모리(30)와 메인 메모리(도면에는 도시하지 않았음) 사이에 전달되는 정보의 최소 단위이다. 이와같은 라인은 인덱스와 태그 및데이타로 이루어지는데, 상기 인덱스와 태그는 캐시 메모리(30)의 어드레스에 해당한다.The cache memory 30 is composed of a plurality of lines, which are the minimum units of information transferred between the cache memory 30 and the main memory (not shown). Such a line consists of an index, a tag, and data, which correspond to an address of the cache memory 30.
이와같은 캐시 메모리(30)의 태그에는 물리적 어드레스의 태그값(PPN-C)이 저장되어 있으며, 하나의 라인이 선택되면 그 라인의 데이타는 버퍼(50)로 출력되어 저장된다.The tag value PPN-C of the physical address is stored in the tag of the cache memory 30. When one line is selected, the data of the line is output to the buffer 50 and stored.
또한 상기 가상 어드레스(10)의 오프셋에 의해 상기 캐시 메모리(30)의 라인 가운데 하나가 선택되면 선택된 라인의 태그에 저장된 태그값(PPN-C)이 출력되어 상기 물리적 어드레스(40)가 갖는 태그값(PPN-C')과 비교기(60)를 통하여 비교된다.In addition, when one of the lines of the cache memory 30 is selected by the offset of the virtual address 10, the tag value PPN-C stored in the tag of the selected line is output, and the tag value of the physical address 40 is output. (PPN-C ') and comparator 60 are compared.
이때 상기 두 개의 물리적 어드레스 태그값(PPN-C)(PPN-C')이 상호 일치하는 경우에는 히트 신호(hit signal)가 발생하여 상기 버퍼(50)에 저장되어 있는 캐시 데이타가 출력되도록 하고, 일치하지 않는 경우에는 미스 신호(miss signal) 가 발생하여 메인 메모리에서 상기 물리적 어드레스(40)로 지정된 데이타를 액세스하도록 이루어진다.In this case, when the two physical address tag values PPN-C and PPN-C 'coincide with each other, a hit signal is generated to output cache data stored in the buffer 50. If they do not match, a miss signal is generated to access the data addressed to the physical address 40 in main memory.
그러나 상술한 가상 어드레스는 절대값과 상기 오프셋에 의해 결정되는 상대값의 두가지 서로 다른 값을 가질수 있다.However, the above-described virtual address may have two different values, an absolute value and a relative value determined by the offset.
따라서 하나의 가상 어드레스가 상대값이 아닌 절대값을 가질 경우에는 서로 다른 두 개의 물리적 어드레스에 대응하게 되어 상기 태그와 인덱스 만을 사용하여 캐시 메모리(30)를 액세스하고자 하는 경우에는 캐시 메모리(30)로부터 출력된 태그값(PPN-C)과 테이블 룩업 버퍼(20)로부터 출럭된 태그값(PPN-C')이 서로 달라 캐시 메모리(30)의 히트율이 떨어지는 문제가 있다.Therefore, when one virtual address has an absolute value rather than a relative value, it corresponds to two different physical addresses, and when the cache memory 30 is to be accessed using only the tag and the index, the cache memory 30 is removed from the cache memory 30. Since the output tag value PPN-C and the tag value PPN-C ′ output from the table lookup buffer 20 are different from each other, the hit ratio of the cache memory 30 may be lowered.
따라서 본 발명은 캐시 메모리의 액세스 단계에서 가상 어드레스와 물리적 어드레스의 일치 여부를 판단하도록 하여 히트율을 향상시키도록 하는데 그 목적이 있다.Accordingly, an object of the present invention is to improve the hit rate by determining whether a virtual address matches a physical address in an access step of a cache memory.
도 1은 종래의 캐시 메모리를 나타낸 블록도.1 is a block diagram showing a conventional cache memory.
도 2는 본 발명의 캐시 메모리를 나타낸 블록도.2 is a block diagram illustrating a cache memory of the present invention.
* 도면의 주요부분에 대한 부호의 설명* Explanation of symbols for main parts of the drawings
10 : 가상 어드레스, 20 : 테이블 룩 업 버퍼, 30 : 캐시 메모리, 40 : 물리적 어드레스, 50 : 버퍼, 60 : 비교기, VPN : 가상 페이지 번호, VPN-C : 가상 페이지 번호 태그값, PPN : 물리적 페이지 번호, PPN-C : 물리적 페이지 번호 태그값10: virtual address, 20: table lookup buffer, 30: cache memory, 40: physical address, 50: buffer, 60: comparator, VPN: virtual page number, VPN-C: virtual page number tag value, PPN: physical page Number, PPN-C: physical page number tag value
상기와 같은 목적의 본 발명은 중앙처리 장치로부터 가상 어드레스가 입력되면, 상기 캐시 메모리에 저장되어 있는 제 1 인데스 값과 상기 가상 어드레스에 포함된 제 2 인데스를 비교하고, 또 상기 제 1태그의 제 1 가상 어드레스 태그값과 상기 가상 어드레스에 포함된 제 2 태그의 제 2가상 어드레스 태그값을 비교하여, 상기 제 1인덱스와 상기 제 2 인덱스가 일치하고, 또 상기 제 1가상 어드레스 태그값과 상기 제 2 가상 어드레스 태그값이 일치하면, 상기 제 1태그의 제 1물리적 어드레스 태그값과 상기 가상 어드레스로부터 발생한 물리적 어드레스의 제 2 물리적 어드레스 태그값을 비교하여 일치하는 경우에 상기 제 1인덱스와 제 1 태그를 어드레스로 갖는 캐시 데이타가 출력되도록 이루어진다.According to the present invention as described above, when a virtual address is input from the central processing unit, the first independence value stored in the cache memory is compared with the second independence included in the virtual address, and the first tag. Compares the first virtual address tag value of the second virtual address tag value of the second tag included in the virtual address, so that the first index and the second index are identical, and the first virtual address tag value When the second virtual address tag value matches, the first index and the first index are compared when the first physical address tag value of the first tag and the second physical address tag value of the physical address generated from the virtual address match. Cache data having one tag as an address is outputted.
이와같이 이루어진 본 발명의 일실시예를 도 2를 참조하여 설명하면 다음과 같다.An embodiment of the present invention made as described above will be described with reference to FIG. 2.
가상 어드레스(10)는 가상 페이지 번호(VPN)와 오프셋(off-set)으로 구성된다.The virtual address 10 is composed of a virtual page number (VPN) and an offset (off-set).
가상 페이지 번호(VPN)는 페이지 방식의 가상 기억 장치에서 프로그램이나 데이타가 일정 크기로 분할되어 페이지로 존재할 때에 부여된 번호이다.The virtual page number (VPN) is a number assigned when a program or data is divided into a predetermined size and present as a page in a page-type virtual memory device.
오프셋은 기억 장치의 주소 공간이 페이지나 세그먼트 단위로 나누어져 있을때한 페이지나 한 세그먼트의 시작 주소로부터의 상대적인 위치를 나타내는 값으로서 물리적 어드레스로 변환되는 정보이다.The offset is information indicating a relative position from the start address of one page or one segment when the address space of the storage device is divided into pages or segments.
상기 가상 어드레스(10)는 테이블 룩업 버퍼(20)에 입력되는데, 상기 테이블 룩업 버퍼(20)에서는 상기 가상 어드레스(10)에 대응하는 물적 어드레스(40)가 출력되도록 한다.The virtual address 10 is input to the table lookup buffer 20, and the table lookup buffer 20 outputs a physical address 40 corresponding to the virtual address 10.
상기 물리적 어드레스(40)는 실제 페이지 번호(PPN)와 오프셋으로 구성되는데, 상기 실제 페이지 번호(PPN)에서는 물리적 어그레스(40) 가운데 캐시 메모리(30)의 태그(tag) 부분에 저장될 태그값(PPN-C')이 출력된다.The physical address 40 is composed of an actual page number (PPN) and an offset. In the actual page number (PPN), a tag value to be stored in a tag portion of the cache memory 30 among the physical addresses 40. (PPN-C ') is output.
캐시 메모리(30)는 다수개의 라인으로 이루어지는데, 라인은 캐시 메모리(30)와 메인 메모리 (도면에는 도시하지 않았음) 사이에 전달되는 정보의 최소 단위이다. 이와 같은 라인은 인덱스와 태그 및 데이타로 이루어지는데, 상기 인덱스와 태그는 캐시 메모리(30)의 어드레스에 해당한다.The cache memory 30 consists of a plurality of lines, which are the minimum units of information transferred between the cache memory 30 and the main memory (not shown in the figure). Such a line consists of an index, a tag, and data, which correspond to the address of the cache memory 30.
이와같은 캐시 메모리(30)의 태그에는 물리적 어그레스의 태그값(PPN-C)과 가상 어드레스의 태그값(VPN-C)이 저장되어 있다.The tag of the cache memory 30 stores the tag value PPN-C of the physical address and the tag value VPN-C of the virtual address.
따라서 상기 가상 어드레스(10)의 오프셋으로부터 발생한 태그 인덱스값에 의해 상기 캐시 메모리(30)에서 해당 인덱스를 갖는 라인이 선택되면 상기 가상 어드레스(10)의 가상 페이지 번호(VPN)가 갖는 가상 어드레스의 태그값(VPN-C')과 상기 캐시 메모리(30)의태그에 저장되어 있는 가상 어드레스 태그값(VPN-C)과의 비교가 이루어져서 일치하는 경우에만 상기 캐시 메모리(30)의 라인이 확실히 선택되는 것이다.Therefore, when the line having the corresponding index is selected in the cache memory 30 by the tag index value generated from the offset of the virtual address 10, the tag of the virtual address of the virtual page number VPN of the virtual address 10 is selected. The line of the cache memory 30 is surely selected only when the value VPN-C 'is compared with the virtual address tag value VPN-C stored in the tag of the cache memory 30 to match. will be.
이와같이 하나의 라인이 선택되면 그 라인의 데이타는 버퍼(50)로 출력되어 저장된다.When one line is selected in this way, the data of the line is output to the buffer 50 and stored.
또한 상기 가상 어드레스(10)의 오프셋에 의해 상기 캐시 메모리(30)에 구비된 다수개의 라인 가운데 하나가 선택되면 산택된 라인의 태그에 저장된 태그값(PPN-C)이 출력되어 상기 물리적 어드레스(40)가 갖는 태그값(PPN-C')과 비교기 (60)를 통하여 비교된다.In addition, when one of a plurality of lines included in the cache memory 30 is selected by the offset of the virtual address 10, the tag value PPN-C stored in the tag of the selected line is output to the physical address 40. ) Is compared with the tag value PPN-C 'which is obtained through the comparator 60.
이때 상기 두 개의물리적 어드레스 태그값(PPN-C)(PPN-C')이 상호 일치하는 경우에는 히트 신호(hit signal)가 발생하여 상기 버퍼(50)에 저장되어 있는 캐시 데이타가 출력되도록 하고, 일치하지 않는 경우에는 미스 신호(miss signal)가 발생하여 메인 메모리에서 상기 물리적 어드레스(40)로 지정된 데이타를 액세스하도록 이루어진다.At this time, when the two physical address tag values (PPN-C) (PPN-C ') coincide with each other, a hit signal is generated to output cache data stored in the buffer 50. If they do not match, a miss signal is generated to access the data addressed to the physical address 40 in main memory.
즉, 캐시 메모리(30)의 태그에 물리적 어드레스(10)의 태그값(PPN-C)과 함께 상기 물리적 어드레스(10)에 대응하는 가상 어드레스(40)의 태그값(VPN-C)을 함께 저장하였다가 가상 어드레스(10)가 입력되면 입력된 가상 어드레스(10)의 태그값(VPN-C')과 상기 캐시 메모리(30)의 태그에 저장되어 있는 가상 어드레스 태그값(VPN-C)을 비교하여 일치하는 캐시 라인을 선택하도록 하는 것이다.That is, the tag value (VPN-C) of the virtual address 40 corresponding to the physical address 10 is stored together with the tag value PPN-C of the physical address 10 in the tag of the cache memory 30. When the virtual address 10 is input, the tag value VPN-C 'of the input virtual address 10 is compared with the virtual address tag value VPN-C stored in the tag of the cache memory 30. To select a matching cache line.
따라서 본 발명은 캐시 메모리의 액세스 단계에서 가상 어드레스와 물리적 어드레스의 일치 여부를 판단 하도록하여 히트율을 향상시키도록 하는 효과가 있다.Therefore, the present invention has an effect of improving the hit rate by determining whether the virtual address and the physical address match in the access step of the cache memory.
Claims (1)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019970027131A KR100234620B1 (en) | 1997-06-25 | 1997-06-25 | Data fetching method of cache memory |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019970027131A KR100234620B1 (en) | 1997-06-25 | 1997-06-25 | Data fetching method of cache memory |
Publications (2)
Publication Number | Publication Date |
---|---|
KR19990003292A true KR19990003292A (en) | 1999-01-15 |
KR100234620B1 KR100234620B1 (en) | 1999-12-15 |
Family
ID=19511104
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1019970027131A KR100234620B1 (en) | 1997-06-25 | 1997-06-25 | Data fetching method of cache memory |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR100234620B1 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100505633B1 (en) * | 1999-03-24 | 2005-08-03 | 삼성전자주식회사 | Data reading apparatus and method for cache memory |
-
1997
- 1997-06-25 KR KR1019970027131A patent/KR100234620B1/en not_active IP Right Cessation
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100505633B1 (en) * | 1999-03-24 | 2005-08-03 | 삼성전자주식회사 | Data reading apparatus and method for cache memory |
Also Published As
Publication number | Publication date |
---|---|
KR100234620B1 (en) | 1999-12-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7003647B2 (en) | Method, apparatus and computer program product for dynamically minimizing translation lookaside buffer entries across contiguous memory | |
KR960001946B1 (en) | Translation lookaside buffer | |
US5265227A (en) | Parallel protection checking in an address translation look-aside buffer | |
US6014732A (en) | Cache memory with reduced access time | |
KR940024591A (en) | Computer devices | |
US5060137A (en) | Explicit instructions for control of translation lookaside buffers | |
KR920013131A (en) | Apparatus and Method for Saving Space in Preferred Translation Reference Buffer for Content Addressing Memory | |
JP2001175536A (en) | Method and device for calculating page table index from virtual address | |
US5241638A (en) | Dual cache memory | |
KR970029066A (en) | Command fetch method and device | |
US7343469B1 (en) | Remapping I/O device addresses into high memory using GART | |
CN107533513B (en) | Burst translation look-aside buffer | |
KR910017286A (en) | Data processing system and method with cache and prefetch buffer | |
US8028118B2 (en) | Using an index value located on a page table to index page attributes | |
EP0212129A2 (en) | Method of updating information in a translation lookaside buffer | |
KR100234620B1 (en) | Data fetching method of cache memory | |
US4456976A (en) | Associative memory system | |
KR0184475B1 (en) | Cache memory access circuit | |
US7181587B1 (en) | Mapping an arbitrary number of contiguous memory pages at an arbitrary alignment | |
JPS601658B2 (en) | Address conversion control method | |
US6493792B1 (en) | Mechanism for broadside reads of CAM structures | |
JPS623354A (en) | Cache memory access system | |
JPH04324194A (en) | Rom circuit | |
JPH05216767A (en) | Entry replacement control system | |
JP2000207278A (en) | Information processor with decentralized shared main storage |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20100825 Year of fee payment: 12 |
|
LAPS | Lapse due to unpaid annual fee |