KR900005897B1 - Microprocessor Systems and Their Memory Operations - Google Patents
Microprocessor Systems and Their Memory Operations Download PDFInfo
- Publication number
- KR900005897B1 KR900005897B1 KR1019850006490A KR850006490A KR900005897B1 KR 900005897 B1 KR900005897 B1 KR 900005897B1 KR 1019850006490 A KR1019850006490 A KR 1019850006490A KR 850006490 A KR850006490 A KR 850006490A KR 900005897 B1 KR900005897 B1 KR 900005897B1
- Authority
- KR
- South Korea
- Prior art keywords
- page
- memory
- address
- microprocessor
- data
- Prior art date
- Legal status (The legal status 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 status listed.)
- Expired
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1416—Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
- G06F12/145—Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being virtual, e.g. for virtual blocks or segments before a translation mechanism
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
Description
제1도는 본 발명에 따른 마이크로프로세서의 전체적인 구성을 나타낸 블록다이아그램.1 is a block diagram showing the overall configuration of a microprocessor according to the present invention.
제2도는 제1도의 마이크로프로세서에 대한 분할메카니즘을 나타낸 블록다이아그램.2 is a block diagram showing the partitioning mechanism for the microprocessor of FIG.
제3도는 페이지필드를 페이지캐시메모리내에 적중시키거나 정합시키기 위해 맵핑하는 예를 나타낸 블록다이아그램.3 is a block diagram showing an example of mapping page fields to hit or match in page cache memory.
제4도는 제3도의 페이지캐시메모리내에 적중되지 않거나 정합되지 않는 페이지필드를 맵핑하는 예의 불록다이아그램을 나타낸 것으로, 이때 메인메모리내의 페이지디렉토리와 페이지테이블이 사용되는 것을 나타낸 도면.4 is a block diagram of an example of mapping page fields that are not hit or matched in the page cache memory of FIG. 3, wherein the page directory and page table in the main memory are used.
제5도는 페이지캐시메모리의 페이지디렉토리와 페이지테이블에 저장된 속성을 나타낸 다이아그램.5 is a diagram showing the attributes stored in the page directory and page table of the page cache memory.
제6도는 페이지캐패시메모리내에 포함된 기억내용에 대한 내용 번지지정가능메모리와 데이터기억장치의 구조를 나타낸 도면.Fig. 6 is a diagram showing the structure of a content address assignable memory and a data storage device for the stored contents contained in the page cache memory.
제7도는 제6도에 도시된 내용번지지정가능메모리의 개략적인 회로도.FIG. 7 is a schematic circuit diagram of a content addressable memory shown in FIG.
제8도는 제6도에 도시된 검출기에 관련된 개략적인 논리회로도이다.FIG. 8 is a schematic logic circuit diagram related to the detector shown in FIG.
* 도면의 주요부분에 대한 부호의 설명* Explanation of symbols for main parts of the drawings
10 : 마이크로프로세서 13 : 램(메인메모리)10: microprocessor 13: RAM (main memory)
13A : 페이지디렉토리 13b : 페이지테이블13A: Page Directory 13b: Page Table
14 : 버스인터페이스장치 16 : 명령디코드장치14
18 : 실행장치 20 : 번지번역장치18: execution device 20: address translation device
22 : 페이지장치 26 : 가산기22: page apparatus 26: adder
27 : 비교기 30 : 페이지필드맵핑블록27: comparator 30: page field mapping block
31 : 출력선31: output line
34 : CAM(Content addressable memory) ; 내용번지지정가능메모리34: Content addressable memory (CAM); Contents Addressable Memory
35 : 페이지데이터(기준)메모리 40,41,42 : 합산기35: page data (reference) memory 40, 41, 42: summer
46,47 : 앤드게이트 53 : 검출기46,47: AND gate 53: detector
55 : 멀티플렉서 56 : 보수발생 및 오버라이드회로55: multiplexer 56: maintenance and override circuit
57 : VUDW논리회로 75 : 제어논리회로57: VUDW logic circuit 75: control logic circuit
[산업상의 이용분야][Industrial use]
본 발명은 마이크로프로세서의 메모리운용에 관한 것으로, 특히 번지번역장치에 관련된 마이크로프로세서 시스템과 그 메모리운용장치에 관한 것이다.BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to memory operations of microprocessors, and more particularly, to a microprocessor system and a memory operation apparatus related to a address translation apparatus.
[종래의 기술 및 문제점]Conventional Technology and Issues
종래 메모리운용방법에 대한 여러종류의 메카니즘이 널리 알려져 있었는 바, 그중 하나의 시스템에 의하면, 큰 번지(가상번지)는 그 보다 작은 실체번지로 번역되어질 수 있도록 되어 있고, 또 다른 하나의 시스템에 의하면, 뱅크스위칭을 이용하는 작은 번지로서 큰 번지공간을 억세스할 수 있도록 되어 있다. 본 발명은 가상번지가 작은 실체번지로 번역되는 전자의 기술에 관한 것으로, 여기서 큰 가상번지는 한정된 실체번지를 억세스하는데 이용된다.Various mechanisms for the conventional memory operation method are widely known. According to one system, a large address (virtual address) can be translated into a smaller entity address, and according to another system. In other words, as a small address using bank switching, a large address space can be accessed. The present invention relates to the former technique in which a virtual address is translated into a small entity address, where the large virtual address is used to access a limited entity address.
또한 메모리운용시스템의 여러 보호메카니즘에 대해서도 이미 잘 알려져 있는 바, 예컨대 어떤 시스템에서도 사용자가 오퍼레이팅시스템내로 기록하는 것을 방지하거나 오퍼레이팅시스템에서 외부포트로 독출하는 것을 방지할 수도 있도록 되어 있는 바, 따라서 후에 상세히 설명하겠지만, 본 발명은 데이터에 대한 "속성"을 2개의 레벨로 할당하는 주변제어장치의 일부와 같은 보호메카니즘을 제공하고자 하는 것이다.It is also well known for the various protection mechanisms of the memory management system, for example, it is possible to prevent the user from writing into the operating system or reading from the operating system to an external port in any system. As will be described in detail, the present invention seeks to provide a protective mechanism, such as part of a peripheral control device, which assigns "attributes" to data at two levels.
출원인에 의해 기출원된 가장 최근의 것이 미국 특허 제4,442,484호에 발표되어 있는 바, 상기 특허에는 인텔 286과 같이 상업적으로 이용할 수 있도록 마이크로프로세서를 구체화시킨 메모리운용방법과 보호메카니즘에 대해 기술되어 있다. 상기 마이크로프로세서는 정보와 속성(예컨대, 보호비트)을 한정하는 기본세그먼트번지를 포함하는 세그먼트화 디스크립터레지스터를 구비하고 있고, 세그먼트디스크립터테이블과 세그먼트디스크립터레지스터는 모두 구속레벨과 보호형태와 같은 여러 제어메카니즘을 결정하는 비트들을 구비하고 있으며, 이러한 제어메카니즘에 대한 기술적 내용이 미국 특허 제4,442,484호에 상세하게 기술되어 있다.The most recent application filed by the applicant is published in US Pat. No. 4,442,484, which describes a memory operating method and protection mechanism incorporating a microprocessor for commercial use such as Intel 286. The microprocessor has a segmentation descriptor register that includes a basic segment address that defines information and attributes (eg, protection bits). The segment descriptor table and the segment descriptor registers both have various control mechanisms such as constraint level and protection type. Bits for determining the number of bits, and the technical details of such a control mechanism are described in detail in US Pat. No. 4,442,484.
인텔 286에 대한 한가지 문제점은 세그먼트오프셋이 64K바이트로 한정된다는 것이다. 항상 유지하기가 쉽지 않은 세그먼트를 위해 실체메모리에서 일련의 장소가 요구되는 바, 다음에서 알 수 있는 바와같이 본 발명의 시스템에 대한 한가지 장점은 비록 세그먼트 오프셋이 실체번지공간만큼 크지만 본 발명은 인텔 286에 설치된 기존의 세그먼트화메카니즘과 양립성을 갖추고 있다는 것이다.One problem with the Intel 286 is that the segment offset is limited to 64K bytes. A series of locations in the physical memory is required for segments that are not always easy to maintain. As can be seen below, one advantage of the system of the present invention is that although the segment offset is as large as the physical address space, It is compatible with the existing segmentation mechanism installed in 286.
[발명의 목적][Purpose of invention]
본 발명은 상기한 점을 감안해서 발명된 것으로, 마이크로프로세서와 데이터메모리를 구비하고 있는 마이크로프로세서를 보다 개선하면서 상기 마이크로프로세서는 가상메모리번지를 제2메모리번지(선형번지 ; 실번지)로 번역하고, 데이터메모리세그먼트의 속성을 측정하여 제어하는 세그먼트화 메카니즘을 구비하고 페이지캐시메모리를 구비한 마이크로프로세서시스템을 제공함에 그 목적이 있다.The present invention has been invented in view of the above, and while further improving a microprocessor having a microprocessor and a data memory, the microprocessor translates a virtual memory address into a second memory address (linear address; actual address). It is an object of the present invention to provide a microprocessor system having a segmentation mechanism for measuring and controlling attributes of data memory segments and having a page cache memory.
또한, 본 발명은 데이터메모리에 페이지맵핑데이터, 특히 페이지디렉토리와 페이지테이블이 저장되어 있으면서 상기 페이지캐시메모리에서 확실적중이 이루어지지 않는 경우 페이지 정보필드는 페이지디렉토리와 페이지테이블을 억세스하고, 페이지캐시메모리나 페이지테이블의 출력은 1페이지에 대한 실체기준번지를 메모리내로 공급하며, 선형번지의 또 다른 필드는 상기 페이지내로 오프셋을 공급하고, 데이터메모리에 있는 페이지캐시메모리와 페이지맵핑데이터는 특정페이지에서 데이터의 속성을 나타내는 신호를 저장하며, 이러한 속성에는 해당 페이지가 이미 기록되어 다른 정보로 되었는가의 여부를 나타내는 독출보호와 기록보호를 구비하고 있고, 특히 세그먼트속성과 분리되어 구별되는 메모리에다 데이터에 대해 페이지레벨보호는 제어에 대한 제2층을 공급할 수 있도록 된 마이크로프로세서의 메모리운용장치를 제공함에 그 목적이 있다.Further, in the present invention, when page mapping data, particularly page directory and page table, are stored in the data memory and certain hits are not made in the page cache memory, the page information field accesses the page directory and the page table, and the page cache memory. The output of the page table feeds the entity reference address for one page into memory, another field of the linear address feeds the offset into the page, and the page cache memory and page mapping data in the data memory store data on a particular page. It stores a signal indicating the attribute of, which has read protection and write protection that indicate whether the page has already been written and has other information, and especially for data in memory separate from the segment attribute. Level protection To provide a memory management unit of the microprocessor to supply a second layer of the air it is an object.
[발명의 구성][Configuration of Invention]
상기 목적을 달성하기 위한 본 발명은, 가상번지를 실번지로 번역함과 더불어 속성에 따른 데이터를 제어하는 세그먼트화 메카니즘이 구비된 마이크로프로세서(10)와 램(13)으로 이루어진 마이크로프로세서시스템에 있어서, 상기 실번지의 페이지정보필드를 수신하기 위해 상기 마이크로프로세서(10)와 일체로 이루어지면서 소정 상태하에서 변위필드를 제공하도록 상기 실번지의 페이지정보필드를 비교하기 위한 페이지캐시메모리(22)를 구비하고, 상기 램(13)은 상기 페이지캐시메모리(22)의 소정상태가 접합되지 않았을 경우 페이지데이터로부터 속성필드를 선택하도록 실번지의 페이지정보필드에 따른 페이지맵핑데이터가 접속되어 있는 기억장치를 구비하며, 상기 마이크로프로세서시스템은 상기 램(13)을 위한 실번지를 제공하기 위해 변위필드와 속성필드중의 하나를 상기 가상번지의 오프셋필드에 결합시키기 위한 회로를 구비함으로서 상기 램(13)의 실번지화를 개선시킬 수 있도록 된 것을 특징으로 한다.In order to achieve the above object, the present invention provides a microprocessor system including a microprocessor (10) and a RAM (13) having a segmentation mechanism for translating a virtual address into a real address and controlling data according to attributes. And a
[실시예]EXAMPLE
이하, 예시도면을 참조해서 본 발명에 따른 1실시예를 상세히 설명한다. 여기서 마이크로시스템, 특히 그중에서 메모리운용방법의 메카니즘은 다음과 같은 바, 아래에서는 본 발명의 완전한 이해를 돕기 위해 고유 비트수에 대해서는 숫자로서 상세하게 나타냈지만, 이러한 특정수가 아니라도 본 발명을 실시할 수 있고, 또한 설명이 중복을 피하기 위해 공지화된 구조는 도시하지 않았다.Hereinafter, an embodiment according to the present invention will be described in detail with reference to the accompanying drawings. Here, the mechanism of the microsystem, in particular the memory operation method, is as follows. In order to facilitate a full understanding of the present invention, the specific bits are shown in detail as numbers, but the present invention may be practiced without these specific numbers. It is also to be understood that the structure is well known in order to avoid duplication.
본 발명의 실시예에 따른 마이크로프로세서시스템에는 제1도에 나타낸 바와같은 마이크로프로세서(10)가 구비되어 있는 바, 상기 마이크로프로세서(10)는 단일 실리콘기판위에 CMOS처리법을 이용하여 제작된 것으로, CMOS로 제작된 것 뿐만 아니라, n-챈널, 바이폴라, SOS등과 같은 다른 기술로서도 실현시킬 수 있다.The microprocessor system according to the embodiment of the present invention is provided with a microprocessor 10 as shown in FIG. 1. The microprocessor 10 is manufactured by using a CMOS process on a single silicon substrate, and the CMOS Not only is it manufactured, but it can be realized with other technologies such as n-channel, bipolar, SOS, etc.
본 발명에 있어서 소정 어떠한 상태하에서는 메모리운용메카니즘에서 메인메모리에 저장된 테이블로 억세스할 필요가 있다. 제1도에 상기 시스템에서 메인메모리로서 기능을 갖춘 램(13)이 도시되어 있는데, 일반적으로 램은 다이내믹 메모리가 사용된다.Under certain conditions in the present invention, it is necessary to access a table stored in the main memory in a memory operation mechanism. FIG. 1 shows a
제1도에 도시한 바와같이, 마이크로프로세서(10)는 32비트의 실번지(physical address)를 갖춘 것으로, 상기 마이크로프로세서(10) 자체가 32비트프로세서이고, 또 마이크로프로세서시스템의 다른 요소로는 제1도에는 도시되어 있지 않지만 일반적으로 드라이버와 수학적인 연산처리장치등이 사용된다. 또한, 본 발명에 따른 메모리운용장치에서는 세그먼트화와 페이징을 이용하게 되는데, 세그먼트는 페이지번역을 묘사하기 위해 사용된 페이지테이블을 분리하는 일련의 세그먼트디스크립터테이블에 의해 결정된다. 여기서 상기 2개의 메카니즘은 완전히 분리된 독립적인 것이다. 그리고 가상번지(virtual address)는 2개의 별도 맵핑메카니즘을 사용하는 2개의 서로 다른 스텝을 통해 실번지로 번역되고, 세그먼트화 기술은 제1번역단계에서 사용되며, 페이징기술은 제2번역단계에서 사용된다. 여기서 페이징번역은 인텔 286과 양립성이 있는 세그먼트화만의 1스텝번역을 위해 턴오프될 수 있다.As shown in FIG. 1, the microprocessor 10 has a 32-bit physical address, and the microprocessor 10 itself is a 32-bit processor. Although not shown in FIG. 1, a driver and a mathematical processing unit are generally used. In addition, the memory management apparatus according to the present invention utilizes segmentation and paging, wherein a segment is determined by a series of segment descriptor tables that separate a page table used to describe page translation. Wherein the two mechanisms are completely separate and independent. The virtual address is translated into a real address through two different steps using two separate mapping mechanisms, the segmentation technique is used in the first translation stage, and the paging technique is used in the second translation stage. do. Here paging translation can be turned off for one-step translation of segmentation only compatible with Intel 286.
세그먼트화(제1번역단계)는 48비트의 가상번지를 32비트의 선형(중간)번지로 번역하게 되는데, 48비트의 가상번지는 16비트 세그먼트셀렉터와 상기 세그먼트내의 32비트 오프셋으로 구성되어 있다.Segmentation (first translation step) translates a 48-bit virtual address into a 32-bit linear address, which consists of a 16-bit segment selector and a 32-bit offset within the segment.
상기 16비트 세그먼트셀렉터는 상기 세그먼트를 인지하여 세그먼트디스크립터테이블로부터 기록목록을 억세스하는데 이용되고, 상기 세그먼트의 기록목록은 세그먼트의 기준번지와 세그먼트의 크기(한도) 및 세그먼트의 각종 속성들을 포함하고 있다. 상기 번역단계에서는 32비트선형번지를 구하기 위해 세그먼트기준번지에다 가상번지의 32비트오프셋을 가산함과 동시에 가상번지에 있는 32비트오프셋은 세그먼트크기와 비교되며, 세그먼트속성에 대해 억세스형태가 체크된다. 그리고 32비트오프셋이 세그먼트크기의 밖에 있거나 억세스형태가 세그먼트속성에 의해 받아들여지지 않는다면, 번지처리가 이루어지지 않게 된다.The 16-bit segment selector is used to recognize the segment and access the record list from the segment descriptor table. The record list of the segment includes the segment reference address, the segment size (limit), and various attributes of the segment. In the translation step, the 32-bit offset of the virtual address is added to the segment reference address to obtain the 32-bit linear address, and the 32-bit offset in the virtual address is compared with the segment size, and the access type is checked for the segment attribute. If the 32-bit offset is outside the segment size or the access type is not accepted by the segment attribute, no address processing is performed.
한편, 페이징(제2번역단계)은 아래에 상세하게 기술한 처리과정에서와 같이 32비트선형번지를 2개 레벨의 페이징테이블을 사용하는 32비트 실번지로 번역한다.On the other hand, paging (second translation step) translates a 32-bit linear address into a 32-bit real address using two levels of paging tables as in the process described in detail below.
상기한 2단계는 완전히 독립된 것으로, 여기서 하나의 (큰) 세그먼트가 몇개의 페이지로 구성되거나, 하나의 페이지가 몇개의 (작은)세그먼트로 구성되는 것이 허용된다. 그리고, 세그먼트는 어떠한 경계면에서도 시작할 수 있으면서 임의의 크기일 수도 있는 것으로, 페이지경계면에서 시작하도록 한정되지 않으며, 페이지의 정확한 배수배가 되도록 구성할 수 있다. 이 경우 세그먼트가 임의 번지에서 시작되는 메모리보호구역을 분리적으로 기록하여 임의 크기로 되는 것을 허용할 수 있게 된다.The above two steps are completely independent, where one (large) segment is allowed to consist of several pages, or one page is allowed to consist of several (small) segments. The segment can be any size and can start at any boundary, and is not limited to start at the page boundary, and can be configured to be an exact multiple of the page. In this case, it is possible to separately record the memory protection area starting at an arbitrary address, allowing the segment to be arbitrarily sized.
세그먼트화에서는 각각 단일 보호속성과 소정의 크기를 갖는 다수의 작은 세그먼트를 하나의 단일 페이지속으로 한 그룹화할 수 있는데, 이러한 경우에 세그먼트화는 보호속성을 제공하고, 페이징은 가상메모리가 별도로 보호되어야만하는 한 그룹의 연관장치를 맵핑하는 편리한 방법을 제공하게 된다.In segmentation, multiple small segments, each with a single protection attribute and a predetermined size, can be grouped into one single page, in which case segmentation provides protection attributes and paging must be protected separately from virtual memory. It provides a convenient way to map a group of related devices.
실질적으로 메모리운용방법을 위해 매우 큰 세그먼트를 작은 단위로 분할하기 위해 페이징을 사용함으로써 다수의 페이지디스크립터를 사용할 것을 요구하기 보다는 분리적인 메모리 보호장치를 위한 단일 식별기호(세그먼트셀렉터)와 단일 디스크립터(세그먼트 디스크립터)가 구비되는 것이다. 여기서 세그먼트내에서 페이징은 큰 세그먼트를 실메모리에 근접시킬 필요없는 분할페이지에 맵핑시키는 것을 허용하는 부가적 맵핑레벨을 갖추고 있다.In practice, the use of paging to split very large segments into smaller units for memory operations requires the use of a single identifier (segment selector) and a single descriptor (segment) for separate memory protection rather than requiring the use of multiple page descriptors. Descriptor). Paging in segments here has an additional mapping level that allows mapping large segments to split pages that do not need to be in close proximity to real memory.
사실, 페이징은 큰 세그먼트가 맵핑되는 것을 허용함으로써 오직 소수페이지만이 디스크에 맵핑된 잔여세그먼트가 있는 실체메모리에 동시에 남게되는 것이다. 또한, 페이징은 다른 페이지가 기록되어질 수 있는 동안에 큰 세그먼트, 예컨대 큰 세그먼트의 소정페이지를 기록보호하가 위해 보조구조의 선명도를 지지하게 된다.In fact, paging allows large segments to be mapped so that only a few pages remain in real memory with the remaining segments mapped to disk. Paging also supports the clarity of the substructure for recording protection of large segments, such as certain pages of large segments, while other pages can be recorded.
그리고, 세그먼트화는 프로그래머에 의해 사용된 "자연적"장치, 즉 선형적으로 어드레스되는 임의 크기의 메모리를 작동시키는 매우 포괄적인 보호모델이고, 페이징은 프로세서시스템의 메인메모리와 디스크메모리에 역저장(백업)시키는 실체메모리를 운용하기에 가장 편리한 방법으로 되어 있는 바, 두가지 방법을 조합시킨 본 발명은 매우 융통성을 갖고 있으면서 강력한 메모리보호모델이다.And segmentation is a very comprehensive protection model that operates on "natural" devices used by programmers, that is, memory of any size that is linearly addressed, and paging is stored back in the main and disk memory of the processor system. The present invention, which is a combination of the two methods, is a very flexible and powerful memory protection model.
제1도에 도시된 바와같이 마이크로프로세서(10)는 버스인터페이스장치(14)를 구비하고 있는데, 상기 버스인터페이스장치(14)는 32비트 어드레스신호의 전송을 허용하여 32비트 데이터의 송입·송출을 할 수 있는 버퍼가 포함된 것으로, 내부버스(19)를 통해 신호를 교환할 수 있도록 되어 있고, 또 램(13)의 명령을 페치시키는 프리페치장치와, 명령디코드장치(16)에서 있는 명령장치와 신호를 주고받는 프리페치큐(pre-fetchqueue ; 프리페치 대기행렬)로 이루어져 있다. 여기서 상기 대기식 명령은 32비트레지스터화일을 포함하고 실행장치(18 ; 산술논리장치)에서 처리되는데, 상기 실행장치(18)도 디코드장치(16)와 같이 내부버스(19)를 통해 신호를 주고 받는다.As shown in FIG. 1, the microprocessor 10 includes a bus interface device 14. The bus interface device 14 transmits and sends 32-bit data by allowing a 32-bit address signal to be transmitted. It includes a buffer that can be used to exchange signals through the internal bus 19, and to fetch a command from the
본 발명은 번지번역장치(20)주위에 중점을 둔 것으로, 상기 번지번역장치(20)는 두가지 기능, 즉 하나는 세그먼트디스크립터레지스터와 관련된 것이고, 다른 하나는 페이지디스크립터캐시메모리와 관련된 것이다. 세그먼트레지스터는 대부분 잘 알려진 것으로, 제2도에 상세히 설명되어 있다. 페이지캐시메모리, 페이지캐시메모리와 페이지디렉토리의 상호작용, 메인메모리(13)에 저장된 페이지테이블에 대해 본 발명의 주요부에 해당하는 제3도 내지 제7도에 의거 설명하면 다음과 같다.The present invention focuses on the
제1도의 세그먼트화장치는 실행장치(18)로부터 가상번지를 인가받아 적절한 레지스터의 세그먼트화정보를 억세스하고, 상기 레지스터는 가상번지의 오프셋에 따라 라인(23)을 통해 페이지장치에 결합되도록 하는 세그먼트의 기본번지를 내포하고 있다.The segmentation apparatus of FIG. 1 receives a virtual address from the execution device 18 to access segmentation information of an appropriate register, and the register is coupled to the page apparatus via line 23 according to the offset of the virtual address. It contains a basic address.
제2도는 새로운 세그먼트를 위해 정보를 맵핑하는 세그먼트레지스터를 로드할 경우, 메인메모리에 있는 테이블을 억세스하는 예를 나타낸 것으로, 세그먼트필드는 메인메모리(13)에 있는 세그먼트디스크립터테이블의 인덱스를 구성하게 되고, 상기 테이블의 내용을 기준번지에다 부가적으로 세그먼트의 데이터에 관련되 속성을 공급한다. 기준번지와 오프셋은 비교기(27)에 의해 세그먼트 한계와 비교되고, 상기 비교기(27)의 출력은 불량신호를 제공한다. 한편, 마이크로프로세서(10)의 일부인 가산기(26)는 출력선(31)상으로 실번지를 출력시키기 위한 기준번지와 오프셋이 접속되고, 상기 실번지는 마이크로프로세서에서 실번지로 사용되거나 페이징장치에 의해 사용되는데, 이러한 것이 종래의 마이크로프로세서(인텔 286)에 의해 기록된 임의의 프로그램과 양립성을 갖게 되는 것이다.2 shows an example of accessing a table in main memory when loading a segment register that maps information for a new segment. The segment field constitutes an index of a segment descriptor table in
각종 특권레벨(privilege)과 같은 디스크립터의 세그먼트 속성에 대해 미국특허 제4,442,484호에 상세히 나타나 있다.Segment attributes of descriptors, such as various privilege levels, are described in detail in US Pat. No. 4,442,484.
한편, 제2도의 점선(28)좌측에 종래의 세그먼트화 메카니즘의 구종에 대해 도시되어 있고, 메인메모리에 저장된 페이지 디렉토리와 페이지테이블과, 이 페이지디렉토리 및 페이지테이블과 제1도에 나타난 페이지장치를 포함하는 페이지필드맵핑블록(30)과의 상호작용관계가 제3도 내지 제7도에 도시되어 있다.On the other hand, on the left side of the dotted line 28 in FIG. 2, a conventional segmentation mechanism is shown, and the page directory and page table stored in the main memory, the page directory and page table, and the page apparatus shown in FIG. An interaction relationship with the containing page
본 실시예의 세그먼트화 메카니즘에서는 새도우레지스터(shadow register)를 사용함으로써 페이징메카니즘으로서 수행되는 것과 같이 캐시메모리로서 개선시킬 수 있다.In the segmentation mechanism of this embodiment, by using a shadow register, the segmentation mechanism can be improved as a cache memory as performed as a paging mechanism.
제3도의 점선(22a)안에는 제1도에 나타낸 페이지장치(22)의 페이지디스크립터캐시메모리를 도시한 것으로, 상기 메모리는 두개의 어레이, 즉 기억내용에 대한 내용번지지정가능메모리(34; CAM)와 페이지데이터(기준)메모리(35)로 구성되어 있다. 여기서 상기 메모리(34)(35)는 스태틱메모리셀을 개선시킨 것으로, 그 구조는 제6도에 도시되어 있고, 단일 마스크특징을 갖춘 CAM(34)에서 사용된 특정회로는 제7도와 제8도에 도시되어 있다.The dotted line 22a in FIG. 3 shows the page descriptor cache memory of the
그리고 제1도에 도시된 세그먼트장치(21)의 선형어드레스는 페이지장치(22)에 접속되어 있는데, 상기 선형어드레스는 2개의 필드, 즉 페이지정보필드(20비트)와 변위필드(12비트)로 구성된 것이며, 부가적으로 마이크로코드에 의해 공급되는 4비트의 페이지속성필드가 있다. 20비트의 페이지정보필드는 CAM(34)의 내용과 비교되어지며, 4개의 속성비트("dirth", "valid", "U/S", "W/R")는 적중되기전에 CAM(34)에 있는 속성비트와 정합되어야 한다(단, 마스킹으로 사용될 때는 예외로 한다).The linear address of the
적중상태를 위해 페이지데이터메모리(35)는 제3도의 합산기(36)에 표시된 바와같이 선형번지의 12비트변위필드와 결합되는 20비트 기준워드를 공급하고, 메인메모리(13)의 4K바이트페이지프레임으로부터 합성실번지를 선택한다.For the hit state, the page data memory 35 supplies a 20-bit reference word combined with the 12-bit displacement field of the linear address, as indicated by the summer 36 of FIG. 3, and the 4K byte page of the
제4도에 도시된 페이지디렉토리(13a)와 페이지테이블(13b)은 메인메모리(13)에 저장된다. 페이지디렉토리(13a)를 위한 기준번지는 제4도에 도시된 페이지디렉토리기준(38 ; page directory base)과 같은 마이크로프로세서에서 공급된다. 페이지정보필드의 10비트는 인덱스로서 제4도의 합산기(40)에 표시된 바와같이 (4의 계수만큼 곱해진 다음에) 페이지디렉토리(13a)내로 입력되고, 상기 페이지디렉토리(13a)는 32비트 워드를 제공하게 되며, 상기 워드중 20비트는 페이지테이블의 기준으로서 사용된다. 또 페이지정보필드의 다른 10비트는 또 다시 4라는 계수만큼 곱해진 다음에 인덱스로서 합산기(41)를 통해 페이지테이블(13b)내에 기억된다. 페이지테이블(13b)은 30비트워드를 제공하는 것으로, 그중에서 20비트는 실번지의 페이지기준번지인 바, 이러한 페이지기준번지는 합산기(42)에 의해 12비트의 변위필드와 합성된 후 32비트실번지로 된다.The page directory 13a and the page table 13b shown in FIG. 4 are stored in the
페이지디렉토리(13a)와, 페이지테이블(13b)의 12비트변위필드중 5비트는 특히 5개의 속성("dirty", "access", "U/S", "R/W", "Present")을 나타내기 위해 사용된다. 이러한 기능은 제5도를 참조해서 상세히 설명한다. 그리고 상기 변위필드의 잔여비트는 배당되지 않게 되는 것이다.In the page directory 13a and in the 12-bit displacement field of the page table 13b, five bits are particularly five attributes ("dirty", "access", "U / S", "R / W", "Present"). Used to indicate This function is described in detail with reference to FIG. The remaining bits of the displacement field are not allocated.
상기 페이지디렉토리(13a)와 페이지테이블(13b)에 저장되었던 속성데이터는 선형번지에 포함되어 있는 4비트의 속성정보에 따라 제어논리회로(75)에 입력되는데, 상기 제어논리회로(75)의 세부적인 사항에 대해서는 다음 도면들을 참조해서 상세히 설명한다.The attribute data stored in the page directory 13a and the page table 13b are input to the control logic circuit 75 according to the 4-bit attribute information included in the linear address. Details of the control logic circuit 75 are described. The matters will be described in detail with reference to the following drawings.
제5도에는 페이지디렉토리워드와 페이지테이블워드 및 CAM워드가 도시되어 있다. 페이지디렉토리워드중 4비트로 할당된 보호/제어속성데이터는 괄호(43)로 묶여져 기입되어 있고, 하나의 속성데이터가 더 부가된 5개의 보호/제어속성데이터는 페이지테이블워드용으로서 괄호(44)로 묶여져 표시되어 있으며, CAM워드용 보호/제어속성데이터는 괄호(45)로 묶여져 표시되어 있는데, 상기 속성데이터들은 다음과 같은 목적을 위해 사용되는 것이다.FIG. 5 shows a page directory word, a page table word, and a CAM word. The protection / control attribute data allocated to 4 bits of the page directory word is enclosed and written in
1. 더티(DIRTY) ; 본 비트는 페이지가 기록되었는가의 여부를 나타내는 비트로서, 상기 비트는 한페이지가 한번 기록되어지면 변경된다. 상기 비트의 사용목적은 예컨대, 페이지가 완전히 비워지지 않았음을 오퍼레이팅시스템에 알리기 위한 것으로, 상기 비트의 저장위치는 페이지디렉토리(13a)가 아닌 페이지테이블(13b)과 CAM(34)이고, 페이지가 기록되어질 때 프로세서에 의해 페이지테이블(13b)에 세트되어진다.1. Dirty (DIRTY); This bit is a bit indicating whether or not a page has been written. The bit is changed once a page is written. The purpose of the use of the bits is to inform the operating system, for example, that the page has not been completely emptied. The storage location of the bits is the page table 13b and the
2. 억세스드(ACCESSED) ; 본 비트는 페이지디렉토리(13a)와 페이지테이블(13b)에 저장(CAM에는 저장되지 않음)되는 것으로, 한 페이지가 억세스되었음을 알리기 위해 사용된다. 한 페이지가 한번 억세스되면, 상기 비트는 프로세서에 의해 메모리내로 억세스되는데, 더티비트(dirty bit)와는 달리 상기 비트는 기록중이거나 독출중인 경우 한 페이지의 억세스가 완료되었는가의 여부를 나타내기 위해 사용되는 것이다.2. ACCESSED; This bit is stored in the page directory 13a and the page table 13b (not stored in the CAM) and is used to indicate that one page has been accessed. Once a page is accessed, the bit is accessed by the processor into memory, which, unlike dirty bits, is used to indicate whether access to a page is complete when writing or reading. Will be.
3. 사용자/슈퍼바이저(U/S) ; 본 비트의 상태는 페이지의 내용이 사용자와 슈퍼바이저가 억세스할 수 있는 것인지(2진수 1) 또는 오직 슈퍼바이저만 억세스할 수 있는 것(2진수 0)인지를 나타내게 된다.3. User / Supervisor (U / S); The state of this bit indicates whether the contents of the page can be accessed by the user and the supervisor (binary 1) or only by the supervisor (binary 0).
4. R/W ; 본 독출/기록보호비트는 사용자프로그램에 의해 페이지를 기록시킬 때는 2진수 1이어야만 한다.4. R / W; This read / write protect bit must be binary 1 when the page is written by the user program.
5. 프레젠트(PRESENT) ; 페이지테이블(13b)에 있는 상기 비트는 관련페이지가 현재 실메모리에 있는가를 나타내는 것이고, 반면 페이지디렉토리(13a)에 있는 상기 비트는 관련 페이지테이블이 현재 실메모리에 있는가를 나타내는 것이다.5. PRESENT; The bit in page table 13b indicates whether the associated page is currently in real memory, while the bit in page directory 13a indicates whether the associated page table is currently in real memory.
6. 배리드(VALID) ; 오직 CAM(34)에만 저장되어 있는 상기 비트는 CAM(34)의 내용이 유효한가를 나타내기 위해 사용되는 것으로, 상기 비트는 초기치설정을 위해 초기상태로 세트된 다음에 유효한 CAM워드가 로드되어질 때 변경된다.6. VALID; The bits stored only in the
페이지디렉토리(13a)와 페이지테이블(13b)의 상기 5개 비트는 마이크로프로세서로 적절한 장애신호를 공급하도록 제어논리회로(75)에 접속되어 있다.The five bits of page directory 13a and page table 13b are connected to control logic circuit 75 to supply an appropriate fault signal to the microprocessor.
페이지디렉토리(13a)와 페이지테이블(13b)의 사용자/슈퍼바이저비트는 게이트(46)에 의해 앤드논리되어 제3도에 도시된 CAM(34)에 저장된 U/S 비트로 공급되는 것이고, 이와 마찬가지로, 페이지디렉토리(13a)와 페이지테이블(13b)의 독출/기록비트(R/W)는 게이트(47)에 의해 앤드논리되어 CAM(34)에 저장되는 R/W 비트로 제공되는 것이며, 페이지테이블(13b)의 더티비트로 CAM(34)에 저장되는 것으로, 상기 게이트(46)(47)는 제4도에 도시된 제어논리회로(75)의 일부분이다.The user / supervisor bits of the page directory 13a and the page table 13b are supplied by the gate 46 to the U / S bits stored in the
CAM(34)에 저장된 속성데이터들은 자동적으로 테스트된 후, 번지의 일부분으로 처리되며, 마이크로코드로부터의 4비트에 대해 정합되는 것이다. 만일 선형번지가 R/W=0인 상태에서 "사용자"기록사이클이 페이지내에 발생되어지고 있음을 나타낸다면 유효페이지기준번지가 CAM(34)에 저장되었을 때 조차도 장애상태가 발생하게 된다.The attribute data stored in the
페이지디렉토리(13a)와 페이지테이블(13b)의 출력인 U/S비트를 논리앤드시킨 것은 "최악의 경우" 캐시메모리에 저장되어 있는 것을 확실하게 하기 위함이고, 이와 마찬가지로, R/W 비트를 앤드논리시킨 것은 캐시메모리에 대한 최악의 경우를 대비하기 위함이다.The logical end of the U / S bits that are the outputs of the page directory 13a and the page table 13b is to ensure that they are stored in the "worst case" cache memory. Similarly, the R / W bits The logic is to prepare for the worst case of cache memory.
제6도에 도시된 CAM(34)은 각각의 세트가 4개의 워드로 이루어진 8세트로 구성되어 있는데, 이러한 어레이의 정합을 위해 21비트(번지에 대한 17비트와 속성데이터에 대한 4비트)가 사용된다.The
여기서 각 세트에 있는 4개기억워드의 4개비교기라인은 검출기에 접속되어 있는 바, 예컨대, 제1세트의 4개워드에 대한 비교기라인이 검출기(53)에 접속되어 있다. 이와 마찬가지로 제2세트로부터 제8세트까지의 4개워드에 대한 비교기라인도 해당 검출기에 접속되어 있는 것이다. 상기 검출기는 비교기라인을 감지해서 상기 세트에 있는 어떠한 워드가 CAM어레이로의 입력(21비트)과 정합되는가를 결정한다. 각 검출기에는 상기 검출기에 결합된 20비트 페이지정보필드중 3비트의 상태에 따라 검출기중의 하나를 선택하도록 하드웨어적으로 연결되어 있고, 상기 페이지정보필드의 다른 17비트는 CAM어레이에 결합되어 있다.Here, four comparator lines of four memory words in each set are connected to the detector, for example, a comparator line for four words of the first set is connected to the
본 발명의 설명을 위한 8개의 검출기가 제6도에 도시되어 있는데, 검출기에 결합시키기 위한 4개라인의 한 세트를 선택하는 3비트가 오직 하나의 검출기에만 사용되며, 검출기는 제8도에 도시되어 있다.Eight detectors for illustration of the present invention are shown in FIG. 6, where three bits selecting one set of four lines for coupling to the detector are used for only one detector, and the detector is shown in FIG. It is.
캐시메모리의 데이터저장영역은 어레이(35a~35d)와 같이 4개의 어레이로 구성되어져 있다. 그리고 CAM(34)의 각 세트에 일치하는 데이터워드(기준번지)는 어레이(35a)에 있고, 제1세트의 제2워드에 적중되어 선택된 데이터워드는 어레이(35b)에 있는 것 등이다. 검출기를 선택하기 위해 사용되는 3개비트는 각 어레이에 있는 워드를 선택하는데에도 사용되는 것 등이다. 이와 같이 동시에 각 4개 어레이로부터 워드가 선택된다. 어레이에서 출력된 워드의 최종선택은 검출기의 4개 비교기라인에 의해 제어를 받는 멀티플렉서(55 ; MUX)에 의해 실행된다.The data storage area of the cache memory is composed of four arrays such as the
메모리캐시가 억세스되어질 때, 각각 저속처리단계인 정합처리단계는 21비트를 사용함으로써 시작되고, 다른 3개비트는 4개 라인을 갖는 하나의 세트를 즉각적으로 선택할 수 있어서 검출기가 비교기라인상의 전위강하를 감지하기 위한 준비상태가 된다.(후술하는 바와같이 모든 비교기(열)라인은 선택되지 않은 라인들이 방전되는 동안 충전된 채로 남아있는 선택(적중)된 라인을 미리 충전시킨다). 동시에 선택된 세트에서 출력된 4개워드는 어레이(35a~35d)내로 억세스된다.When the memory cache is accessed, each of the low-speed matching stages begins by using 21 bits, and the other three bits can instantly select one set of four lines so that the detector can drop the potential on the comparator line. (Compared below, all comparator (thermal) lines pre-charge selected (hit) lines that remain charged while the unselected lines are discharged.)). At the same time, four words output from the selected set are accessed into the
그리고 정합이 이루어졌을 경우 검출기가 세트내에 있는 워드를 확인할 수 있다면, 상기 워드는 데이터워드의 선택에 따라 멀티플렉서(55)에 전송되는데, 이와같은 구조가 상기 캐시메모리의 억세스시간을 향상시킬 수 있도록 되는 것이다.If a match is found and the detector can identify the words in the set, the words are transmitted to the
제7도는 CAM어레이에 접속된 21비트중 17비트가 보수발생 및 오버라이드회로(56)에 접속되고, 4개의 속성데이터비트가 VUDW논리회로(57)에 접속된 것을 나타낸 것으로, 제6도를 참조해서 설명한 것 중 검출기선택에 관련된 3비트는 제7도에 도시되어 있지 않다.FIG. 7 shows that 17 bits of the 21 bits connected to the CAM array are connected to the maintenance generation and
상기 보수발생 및 오버라이드회로(56)는 해당 번지신호에 대한 상호보수신호를 발생시켜서 라인(59)(60)과 같은 CAM어레이의 병렬라인으로 상기 2개 보수신호를 접속시킨다. 이와 마찬가지로 VUDW논리회로(57)는 속성데이터비트에 대한 상호보수신호를 발생시켜서 상기 상호보수신호를 CAM어레이의 평행라인으로 접속시킨다. 상기 라인(59)(60)은 각각의 보수비트라인(즉 21쌍의 비트라인(BIT)과 비트라인()을 위해 복수로 되어 있다.The complement generation and
CAM어레이의 각 32개 열은 라인(68)(70)과 같이 한쌍의 병렬열라인으로 되어 있고, 보통 셀(67)과 같은 스태틱메모리셀은 비트라인(BIT)과 비트라인()(행사)사이에 접속됨과 더불어 상기한 한쌍의 열라인(68)(70)과 관련된 것이다.Each of the 32 columns of the CAM array consists of a pair of parallel column lines, such as lines 68 and 70, and a static memory cell, such as a
본 발명의 실시예에 따른 메모리셀은 P챈널트랜지스터를 사용하는 통상의 플립플롭스태틱셀로 구성되어 있다. 각 쌍의 열라인중의 한 라인(라인 (70))은 데이터가 상기 어레이내로 기록될 때 메모리셀이 비트라인(BIT)과 비트라인()에 접속되도록 허용된다. 다른 방법으로는 메모리셀의 내용이 행라인의 데이터와 비교된 다음에 비교결과가 적중라인(68)에 접속된다. 상기한 비교는 각 셀에 관련된 것중의 하나인 비교기에 의해 실행되고, 상기 비교기는 n챈널트랜지스터로 구성된 것으로, 각 쌍의 비교기중 트랜지스터, 예컨대 트랜지스터(61)(62)는 메모리셀의 일단과 반대쪽 비트라인()사이에 접속되어 있다.The memory cell according to the embodiment of the present invention is composed of a conventional flip-flop static cell using a P-channel transistor. One line (line 70) of each pair of column lines indicates that the memory cell has a bit line (BIT) and a bit line (data) when data is written into the array. Is allowed to access Alternatively, the contents of the memory cells are compared with the data in the row lines and then the comparison results are connected to the hit line 68. The comparison is performed by a comparator, which is one of those associated with each cell, and the comparator is composed of n channel transistors, in which transistors of each pair of comparators, for example, transistors 61 and 62 are opposite to one end of the memory cell. Bitline ( ) Is connected.
데이터가 메모리셀(67)에 저장되어 있으면서 비트라인(59 ; BIT)에 가장 가까운 셀의 노드를 하이상태로 가정하면, CAM(34)의 내용이 검색되어질 때 첫번째 적중라인(68)은 트랜지스터(69)를 통해 선충전되고, 그후 CAM(34)에 접속된 상기 신호는 행라인상에 입력된다. 처음에 라인(59)이 하이상태라고 가정하였으므로, 라인(60)이 로우상태이기 때문에 트랜지스터(62)는 동작되지 않게 되고, 또 트랜지스터(63)는 로우라인에 접속된 셀의 측면에 접속되어 있기 때문에 동작되지 않는다. 이러한 상태인 동안에 셀에서 정합되었음을 나타내는 라인(68)이 방전되지 않게 되고, 적중라인(68)은 열라인에 따라 발생하는 비교작용의 앤드조건을 공급하게 되며, 여기서 만일 셀에서 정합이 이루어지지 않는다면, 한개 또는 그 이상의 비교기가 적중라인을 방전시키게 된다.Assuming that the node of the cell closest to the bit line 59 (BIT) while data is stored in the
한편, 상기 보수발생 및 오버라이드회로(56)와 VUDW논리회로(57)가 선충전되어 있는 동안 모든 행라인(비트라인(BIT)과 비트라인())이 로우레벨로 되도록 오버라이드신호를 발생시키는데, 이러한 작용에 의해 비교동작이 시작되기 전에 비교기가 전하를 유출하는 것이 방지되게 된다.On the other hand, while the maintenance generation and
비교기가 "2진수 1"상태인 경우에 검색이 이루어지고, "2진수 0"상태인 경우에 무시되는 바, 예컨대, 만일 트랜지스터(64)의 게이트가 하이상태(라인(59)이 하이상태)라면, 트랜지스터(63)(64)가 상기한 비교동작을 제어하게 된다. 이와 마찬가지로, 만일 비트라인(60 ;)이 하이상태라면, 트랜지스터(61)(62)가 비교동작을 제어하게 된다. 이러한 비교기의 특성은 셀이 무시되는 것을 허용하는 것이다. 이와같이 한 워드가 CAM(34)에 접속되어질 때 비트라인(BIT)()을 로우상태로 만듬으로써 정합과정에서 소정 비트들을 마스크시킬 수 있게 되는데, 이것은 셀의 내용이 행라인상의 정합되어짐을 나타나도록 한다. VUDW논리회로(57)는 위와 같은 특성을 이용한 것이다.The search is made when the comparator is in the " binary 1 " state and is ignored if the comparator is in the " binary 0 " state, for example, if the gate of the
상기한 VUDW논리회로(57)에 접속된 마이크로코드신호는 마이크로코드비트의 기능으로서 속성데이터비트중의 하나를 선택하기 위해 비트라인(BIT)()을 로우상태로 만드는 역할을 한다. 그리하여 마이크로코드비트와 관련된 속성데이터가 무시되어진다. 이러한 특성이, 예컨대 슈퍼바이저리모드(supervisory mode)에서 U/S비트를 무시하기 위해 사용된다. 즉 슈퍼바이저리모드에서는 사용자데이터를 억세스할 수 있게 된다. 이와 마찬가지로 독출/기록비트는 독출중인 때나 슈퍼바이저리모드가 동작가능상태일 때 무시될 수 있다. 더티비트도 독출중일 때 무시된다. (상기 특성은 배리드비트에서 사용되지 않는다)The microcode signal connected to the above VUDW logic circuit 57 is a function of the microcode bits to select one of the attribute data bits. ) To a low state. Thus, attribute data related to microcode bits are ignored. This property is used to ignore the U / S bits, for example in supervisory mode. In other words, the user data can be accessed in the supervisor mode. Similarly, the read / write bit can be ignored when being read or when the supervisory mode is enabled. Dirty bits are also ignored when reading. (The above properties are not used in buried bits)
속성데이터비트가 메인메모리에 저장되어진 때 상기 비트들은 억세스되거나 검색될 수 있게 되는데, 논리회로가 예컨대, U/S비트의 1상태나 0상태에 입각한 억세싱을 제어하는데 사용될 수 있다. 그러나 상기 캐시메모리는 분리논리를 사용하지 않는다. 비트라인(BIT)과 비트라인()을 강제로 로우상태로 만드는 것은 속성데이터비트의 비트패턴이 정합되지 않을지라도 정합을 허가함으로써(또는 장애를 방지함으로써) 예비논리를 공급한다.When the attribute data bits are stored in the main memory, the bits can be accessed or retrieved, and a logic circuit can be used to control access based on the 1 state or 0 state of the U / S bit, for example. However, the cache memory does not use separation logic. Bitline (BIT) and bitline ( Forcing low) supplies the preliminary logic by allowing the match (or by preventing a failure) even if the bit pattern of the attribute data bits does not match.
제6도에 도시된 검출기는 제8도에서 나타낸 바와같이 게이트(81~84)로 이루어진 다수의 노아게이트를 구비하고 있다. CAM(34)라인중에서 선택된 세트의 3개 적중라인은 게이트(81)에 접속되는데, 이와같은 것이 라인(A)(B)(C)으로 도시되어 있다. 상기 CAM(34)라인의 다른 조합은 각각의 다른 노아게이트에 접속된다. 예컨대 노아게이트(84)에는 적중라인(D)(A)(B)이 접속된다. 각 노아게이트의 출력은 낸드게이트(86)와 같은 NAND게이트에 입력된다. 노아게이트로 입력되지 않는 적중라인의 (A,B,C,D중 어느 하나)한 적중라인은 각 낸드게이트의 한 입력으로서 공급된다. 상기 적중라인은 선택되기 위한 세트기록목록의 비트라인이다. 예컨대, 게이트(86)는 적중라인(D)과 관련된 세트를 선택해야 한다. 즉, 노아게이트(81)인 경우에 적중라인(D)은 낸드게이트(86)에 접속된다. 이와 마찬가지로 낸드게이트(90)에 대해 게이트(84)의 출력에 부가된 적중라인(C)은 낸드게이트(90)에 입력된다. 독출이네이블신호는 이러한 논리회로의 출력이 기록을 위해 이네이블되는 것을 방지하도록 낸드게이트에 접속되어 있는 것이다. 라인(87)과 같은 낸드게이트의 출력은 제6도에 도시된 멀티플렉서(55)를 제어하기 위해 사용되는 것으로, 실질적으로 라인(81)상의 신호와 같은 낸드게이트의 출력신호는 P챈널트랜지스터를 통해 멀티플렉서를 제어하게 되는데, 이러한 목적을 위해 인버터(88)가 출력라인(89)상에 도시되어 있다.The detector shown in FIG. 6 has a number of noble gates consisting of gates 81-84 as shown in FIG. Three hit lines of the set selected from the
이러한 검출기의 장점은 멀티플렉서에 사용되어지는 선충전라인을 동작가능상태로 만들 수 있다는 점이다. 한편 스태틱배열이 사용될 수 있지만, 이것은 현격히 많은 전력을 필요로 한다. 제8도에 도시된 바와같은 배열에 있어 인버터들의 출력은 적중라인중의 하나에서 전압강하가 이루어질 때까지 같은 상태가 지속되고, 오직 하나의 적중라인에서 전압강하가 일어났을때 멀티플렉서가 올바른 워드를 선택하도록 하는 전압 강하가 발생하게 된다.The advantage of such a detector is that the precharge line used in the multiplexer can be made operational. While static arrays can be used, this requires a lot of power. In the arrangement as shown in FIG. 8, the outputs of the inverters remain the same until a voltage drop occurs on one of the hit lines, and only when the voltage drop occurs on one hit line, the multiplexer outputs the correct word. A voltage drop will occur that will cause the selection.
[발명의 효과][Effects of the Invention]
상기한 바와같이 본 발명에 의하면, 세그먼트화와 페이징을 위한 2개 레벨의 캐시메모리를 사용하는 단일 번지번역장치를 제공함으로써 독립데이터속성제어를 각 레벨로 공급할 수 있게 된다.As described above, according to the present invention, by providing a single address translation apparatus using two levels of cache memory for segmentation and paging, independent data attribute control can be supplied to each level.
Claims (25)
Applications Claiming Priority (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US74438985A | 1985-06-13 | 1985-06-13 | |
| US744389 | 1985-06-13 | ||
| JP744389 | 1985-06-13 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| KR870003427A KR870003427A (en) | 1987-04-17 |
| KR900005897B1 true KR900005897B1 (en) | 1990-08-13 |
Family
ID=24992533
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| KR1019850006490A Expired KR900005897B1 (en) | 1985-06-13 | 1985-09-05 | Microprocessor Systems and Their Memory Operations |
Country Status (8)
| Country | Link |
|---|---|
| JP (1) | JPH0622000B2 (en) |
| KR (1) | KR900005897B1 (en) |
| CN (1) | CN1008839B (en) |
| DE (1) | DE3618163C2 (en) |
| FR (1) | FR2583540B1 (en) |
| GB (2) | GB2176918B (en) |
| HK (1) | HK53590A (en) |
| SG (1) | SG34090G (en) |
Families Citing this family (31)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO1988007721A1 (en) * | 1987-04-02 | 1988-10-06 | Unisys Corporation | Associative address translator for computer memory systems |
| US5226039A (en) * | 1987-12-22 | 1993-07-06 | Kendall Square Research Corporation | Packet routing switch |
| US5055999A (en) * | 1987-12-22 | 1991-10-08 | Kendall Square Research Corporation | Multiprocessor digital data processing system |
| US5761413A (en) | 1987-12-22 | 1998-06-02 | Sun Microsystems, Inc. | Fault containment system for multiprocessor with shared memory |
| US5251308A (en) * | 1987-12-22 | 1993-10-05 | Kendall Square Research Corporation | Shared memory multiprocessor with data hiding and post-store |
| US5341483A (en) * | 1987-12-22 | 1994-08-23 | Kendall Square Research Corporation | Dynamic hierarchial associative memory |
| CA2078315A1 (en) * | 1991-09-20 | 1993-03-21 | Christopher L. Reeve | Parallel processing apparatus and method for utilizing tiling |
| US5313647A (en) * | 1991-09-20 | 1994-05-17 | Kendall Square Research Corporation | Digital data processor with improved checkpointing and forking |
| CA2078312A1 (en) | 1991-09-20 | 1993-03-21 | Mark A. Kaufman | Digital data processor with improved paging |
| US5895489A (en) * | 1991-10-16 | 1999-04-20 | Intel Corporation | Memory management system including an inclusion bit for maintaining cache coherency |
| GB2260629B (en) * | 1991-10-16 | 1995-07-26 | Intel Corp | A segment descriptor cache for a microprocessor |
| CN1068687C (en) * | 1993-01-20 | 2001-07-18 | 联华电子股份有限公司 | Memory Dynamic Allocation Method for Recording Multi-segment Voices |
| EP0613090A1 (en) * | 1993-02-26 | 1994-08-31 | Siemens Nixdorf Informationssysteme Aktiengesellschaft | Method for checking the admissibility of direct memory accesses in a data processing systems |
| US5548746A (en) * | 1993-11-12 | 1996-08-20 | International Business Machines Corporation | Non-contiguous mapping of I/O addresses to use page protection of a process |
| US5590297A (en) * | 1994-01-04 | 1996-12-31 | Intel Corporation | Address generation unit with segmented addresses in a mircroprocessor |
| US6622211B2 (en) * | 2001-08-15 | 2003-09-16 | Ip-First, L.L.C. | Virtual set cache that redirects store data to correct virtual set to avoid virtual set store miss penalty |
| KR100406924B1 (en) * | 2001-10-12 | 2003-11-21 | 삼성전자주식회사 | Content addressable memory cell |
| US7689485B2 (en) | 2002-08-10 | 2010-03-30 | Cisco Technology, Inc. | Generating accounting data based on access control list entries |
| GB2396034B (en) | 2002-11-18 | 2006-03-08 | Advanced Risc Mach Ltd | Technique for accessing memory in a data processing apparatus |
| US7149862B2 (en) | 2002-11-18 | 2006-12-12 | Arm Limited | Access control in a data processing apparatus |
| GB2396930B (en) | 2002-11-18 | 2005-09-07 | Advanced Risc Mach Ltd | Apparatus and method for managing access to a memory |
| JP4302641B2 (en) | 2002-11-18 | 2009-07-29 | エイアールエム リミテッド | Controlling device access to memory |
| US7171539B2 (en) | 2002-11-18 | 2007-01-30 | Arm Limited | Apparatus and method for controlling access to a memory |
| US7900017B2 (en) * | 2002-12-27 | 2011-03-01 | Intel Corporation | Mechanism for remapping post virtual machine memory pages |
| WO2005017754A1 (en) * | 2003-07-29 | 2005-02-24 | Cisco Technology, Inc. | Force no-hit indications for cam entries based on policy maps |
| US20060090034A1 (en) * | 2004-10-22 | 2006-04-27 | Fujitsu Limited | System and method for providing a way memoization in a processing environment |
| GB2448523B (en) * | 2007-04-19 | 2009-06-17 | Transitive Ltd | Apparatus and method for handling exception signals in a computing system |
| US8799620B2 (en) | 2007-06-01 | 2014-08-05 | Intel Corporation | Linear to physical address translation with support for page attributes |
| KR101671494B1 (en) | 2010-10-08 | 2016-11-02 | 삼성전자주식회사 | Multi Processor based on shared virtual memory and Method for generating address translation table |
| FR3065826B1 (en) * | 2017-04-28 | 2024-03-15 | Patrick Pirim | AUTOMATED METHOD AND ASSOCIATED DEVICE CAPABLE OF STORING, RECALLING AND, IN A NON-VOLATILE MANNER, ASSOCIATIONS OF MESSAGES VERSUS LABELS AND VICE VERSA, WITH MAXIMUM LIKELIHOOD |
| KR102686380B1 (en) * | 2018-12-20 | 2024-07-19 | 에스케이하이닉스 주식회사 | Memory device, Memory system including the memory device and Method of operating the memory device |
Family Cites Families (11)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CA784373A (en) * | 1963-04-01 | 1968-04-30 | W. Bremer John | Content addressed memory system |
| GB1281387A (en) * | 1969-11-22 | 1972-07-12 | Ibm | Associative store |
| US3761902A (en) * | 1971-12-30 | 1973-09-25 | Ibm | Functional memory using multi-state associative cells |
| GB1457423A (en) * | 1973-01-17 | 1976-12-01 | Nat Res Dev | Associative memories |
| GB1543736A (en) * | 1976-06-21 | 1979-04-04 | Nat Res Dev | Associative processors |
| US4376297A (en) * | 1978-04-10 | 1983-03-08 | Signetics Corporation | Virtual memory addressing device |
| GB1595740A (en) * | 1978-05-25 | 1981-08-19 | Fujitsu Ltd | Data processing apparatus |
| US4377855A (en) * | 1980-11-06 | 1983-03-22 | National Semiconductor Corporation | Content-addressable memory |
| GB2127994B (en) * | 1982-09-29 | 1987-01-21 | Apple Computer | Memory management unit for digital computer |
| US4442482A (en) * | 1982-09-30 | 1984-04-10 | Venus Scientific Inc. | Dual output H.V. rectifier power supply driven by common transformer winding |
| JPH0658646B2 (en) * | 1982-12-30 | 1994-08-03 | インタ−ナショナル・ビジネス・マシ−ンズ・コ−ポレ−ション | Virtual memory address translation mechanism with controlled data persistence |
-
1985
- 1985-08-08 GB GB8519991A patent/GB2176918B/en not_active Expired
- 1985-08-30 FR FR858512931A patent/FR2583540B1/en not_active Expired - Lifetime
- 1985-08-30 JP JP60189994A patent/JPH0622000B2/en not_active Expired - Lifetime
- 1985-09-05 KR KR1019850006490A patent/KR900005897B1/en not_active Expired
- 1985-09-06 CN CN85106711A patent/CN1008839B/en not_active Expired
-
1986
- 1986-05-23 GB GB8612679A patent/GB2176920B/en not_active Expired
- 1986-05-30 DE DE3618163A patent/DE3618163C2/en not_active Expired - Lifetime
-
1990
- 1990-05-15 SG SG340/90A patent/SG34090G/en unknown
- 1990-07-19 HK HK535/90A patent/HK53590A/en not_active IP Right Cessation
Also Published As
| Publication number | Publication date |
|---|---|
| HK53590A (en) | 1990-07-27 |
| GB2176920B (en) | 1989-11-22 |
| CN1008839B (en) | 1990-07-18 |
| JPH0622000B2 (en) | 1994-03-23 |
| DE3618163A1 (en) | 1986-12-18 |
| GB8519991D0 (en) | 1985-09-18 |
| GB2176918A (en) | 1987-01-07 |
| FR2583540A1 (en) | 1986-12-19 |
| SG34090G (en) | 1990-08-03 |
| KR870003427A (en) | 1987-04-17 |
| GB2176918B (en) | 1989-11-01 |
| DE3618163C2 (en) | 1995-04-27 |
| JPS61286946A (en) | 1986-12-17 |
| GB8612679D0 (en) | 1986-07-02 |
| CN85106711A (en) | 1987-02-04 |
| FR2583540B1 (en) | 1991-09-06 |
| GB2176920A (en) | 1987-01-07 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| KR900005897B1 (en) | Microprocessor Systems and Their Memory Operations | |
| US5321836A (en) | Virtual memory management method and apparatus utilizing separate and independent segmentation and paging mechanism | |
| US5696925A (en) | Memory management unit with address translation function | |
| US5526504A (en) | Variable page size translation lookaside buffer | |
| KR920005280B1 (en) | High speed cache system | |
| US4589092A (en) | Data buffer having separate lock bit storage array | |
| US5053951A (en) | Segment descriptor unit for performing static and dynamic address translation operations | |
| US5568415A (en) | Content addressable memory having a pair of memory cells storing don't care states for address translation | |
| US5604879A (en) | Single array address translator with segment and page invalidate ability and method of operation | |
| US5317705A (en) | Apparatus and method for TLB purge reduction in a multi-level machine system | |
| US5173872A (en) | Content addressable memory for microprocessor system | |
| US4812969A (en) | Address translation unit | |
| US5414824A (en) | Apparatus and method for accessing a split line in a high speed cache | |
| EP0095033A2 (en) | Set associative sector cache | |
| JPH11161547A (en) | Storage device for data processing device and method of accessing storage location | |
| US5530824A (en) | Address translation circuit | |
| US6571316B1 (en) | Cache memory array for multiple address spaces | |
| US5956752A (en) | Method and apparatus for accessing a cache using index prediction | |
| US5712998A (en) | Fast fully associative translation lookaside buffer with the ability to store and manage information pertaining to at least two different page sizes | |
| JPH08227380A (en) | Data-processing system | |
| US5737569A (en) | Multiport high speed memory having contention arbitration capability without standby delay | |
| EP0284751B1 (en) | Cache memory | |
| US20060117129A1 (en) | High speed DRAM cache architecture | |
| US5530822A (en) | Address translator and method of operation | |
| US5732405A (en) | Method and apparatus for performing a cache operation in a data processing system |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| PA0109 | Patent application |
Patent event code: PA01091R01D Comment text: Patent Application Patent event date: 19850905 |
|
| A201 | Request for examination | ||
| PA0201 | Request for examination |
Patent event code: PA02012R01D Patent event date: 19851227 Comment text: Request for Examination of Application Patent event code: PA02011R01I Patent event date: 19850905 Comment text: Patent Application |
|
| PG1501 | Laying open of application | ||
| E902 | Notification of reason for refusal | ||
| PE0902 | Notice of grounds for rejection |
Comment text: Notification of reason for refusal Patent event date: 19891128 Patent event code: PE09021S01D |
|
| G160 | Decision to publish patent application | ||
| PG1605 | Publication of application before grant of patent |
Comment text: Decision on Publication of Application Patent event code: PG16051S01I Patent event date: 19900712 |
|
| E701 | Decision to grant or registration of patent right | ||
| PE0701 | Decision of registration |
Patent event code: PE07011S01D Comment text: Decision to Grant Registration Patent event date: 19901105 |
|
| GRNT | Written decision to grant | ||
| PR0701 | Registration of establishment |
Comment text: Registration of Establishment Patent event date: 19901201 Patent event code: PR07011E01D |
|
| PR1002 | Payment of registration fee |
Payment date: 19901201 End annual number: 3 Start annual number: 1 |
|
| PR1001 | Payment of annual fee |
Payment date: 19930805 Start annual number: 4 End annual number: 4 |
|
| PR1001 | Payment of annual fee |
Payment date: 19940803 Start annual number: 5 End annual number: 5 |
|
| PR1001 | Payment of annual fee |
Payment date: 19950801 Start annual number: 6 End annual number: 6 |
|
| PR1001 | Payment of annual fee |
Payment date: 19960726 Start annual number: 7 End annual number: 7 |
|
| PR1001 | Payment of annual fee |
Payment date: 19970731 Start annual number: 8 End annual number: 8 |
|
| PR1001 | Payment of annual fee |
Payment date: 19980805 Start annual number: 9 End annual number: 9 |
|
| PR1001 | Payment of annual fee |
Payment date: 19990805 Start annual number: 10 End annual number: 10 |
|
| PR1001 | Payment of annual fee |
Payment date: 20000804 Start annual number: 11 End annual number: 11 |
|
| PR1001 | Payment of annual fee |
Payment date: 20010802 Start annual number: 12 End annual number: 12 |
|
| PR1001 | Payment of annual fee |
Payment date: 20020802 Start annual number: 13 End annual number: 13 |
|
| PR1001 | Payment of annual fee |
Payment date: 20030801 Start annual number: 14 End annual number: 14 |
|
| PR1001 | Payment of annual fee |
Payment date: 20040811 Start annual number: 15 End annual number: 15 |
|
| FPAY | Annual fee payment |
Payment date: 20050808 Year of fee payment: 16 |
|
| PR1001 | Payment of annual fee |
Payment date: 20050808 Start annual number: 16 End annual number: 16 |
|
| EXPY | Expiration of term | ||
| PC1801 | Expiration of term |