KR100322718B1 - 동시에다중기록액세스가가능한기억장치어레이 - Google Patents

동시에다중기록액세스가가능한기억장치어레이 Download PDF

Info

Publication number
KR100322718B1
KR100322718B1 KR1019980017149A KR19980017149A KR100322718B1 KR 100322718 B1 KR100322718 B1 KR 100322718B1 KR 1019980017149 A KR1019980017149 A KR 1019980017149A KR 19980017149 A KR19980017149 A KR 19980017149A KR 100322718 B1 KR100322718 B1 KR 100322718B1
Authority
KR
South Korea
Prior art keywords
write
array
memory
function
read
Prior art date
Application number
KR1019980017149A
Other languages
English (en)
Other versions
KR19990006439A (ko
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 포만 제프리 엘
Publication of KR19990006439A publication Critical patent/KR19990006439A/ko
Application granted granted Critical
Publication of KR100322718B1 publication Critical patent/KR100322718B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/16Multiple access memory array, e.g. addressing one storage element via at least two independent addressing line groups

Landscapes

  • Engineering & Computer Science (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Static Random-Access Memory (AREA)

Abstract

기억 소자 세트에 데이터를 기억시키기 위한 방법 및 기억 소자 세트로부터 데이터를 얻기 위한 방법을 함께 갖는 기억 소자 세트가 제시된다. 기억 소자 세트는 단일-기록 포트 셀들의 세트에 의한 다중-기록 포트 셀의 기능성을 구비하며, 다중 동시 기록 액세스를 가능하게 한다.
기억 소자 세트에 포함된 정보는 모든 기억 소자들을 합침으로써 표현된다. 그것은 상기 세트의 소 세트에 액세스하는 판독-함수에 의해서 얻어질 수도 있다.
기록 액세스는 3 단계로 실행된다. 먼저, 수정되지 않을 모든 기억 소자들의 내용이 판독된다. 다음으로, 기억 장치 세트의 소 세트 B에 기록되는 값들이 소 세트 B의 내용들과 값들이 함께 소정의 결과를 표현하는 방식으로 계산된다.

Description

동시에 다중 기록 액세스가 가능한 기억 장치 어레이{A STORAGE ARRAY ALLOWING FOR MULTIPLE, SIMULTANEOUS WRITE ACCESSES}
본 발명은 기억 소자 및 기억 어레이에 관한 것으로서, 특히 다수의 동시 기록- 및 판독-액세스가 가능한 기억 소자에 관한 것이다.
예를 들어, 다수의 기억 셀들을 포함하는 기억 어레이인 기억 소자는 판독-포트들 및 기록-포트들을 경유하여 액세스된다. 기억 어레이로의 판독- 또는 기록-액세스가 실행될 때마다, 어드레스는 기억 어레이에 제공되며, 판독 포트들 및/또는 기록-포트들을 경유하여 데이터가 기억 어레이에 기록되며 기억 어레이로부터 판독된다.
하나의 동일한 클록-주기 동안에 발생할 수 있는 별개의 판독- 및 기록-액세스들을 동시에 할 수 있도록, 다수의 판독-포트들 및/또는 기록 포트들을 구비하는 것은 주지된 사실이다.
동시 판독- 및 기록-액세스들이 상이한 어드레스들로 지정되는 한, 각각의 액세스는 상이한 기억 장소로부터 판독되거나 그곳에 기록되기 때문에, 어떤 장애도 발생하지 않는다. 두개의 별개의 판독 포트들을 경유하여 두개의 동시 판독 액세스가 하나의 동일한 기억 어드레스로 지정될 지라도, 장애는 일어나지 않는다. 기억 장소를 어드레스했던 두 판독 포트들 모두로 그 어드레스의 내용은 단순히 전송된다. 이와 같이, 하나의 기억 장소로의 동시 판독 액세스들이 용이하게 실행될 수 있다.
기억 장치 내의 하나의 동일한 어드레스에 하나의 기록- 및 하나의 판독-액세스가 지정되면 더욱 곤란한 상황이 발생한다. 기록 포트를 경유하여 이 기억 어드레스에 기록된 데이터가 판독-어드레스에 의해서 동일 주기 내에 얻어져야 한다.동일 기억 장소를 어드레스하는 기록 포트 및 판독 포트로 인가된 데이터를 즉시 지정하는 이러한 특징은 “라이트-스루(write-through)”라 불리운다.
라이트-스루가 실행될 수 있는 두가지 방법은 다음과 같다. 첫번째 해결 방법은 클록 주기를 다수의 소 주기(subcycle)로 분할하는 것으로서, 이때 제1 소 주기는 기록-액세스를 담당하고, 판독-액세스는 제2 소 주기 동안 일어난다. 이와 같이, 기록-소 주기에 대하여 판독-소 주기가 지연되기 때문에, 기록-소 주기 동안 기억 어드레스에 기록되어지는 데이터를 판독-소 주기 내에 얻는 것이 가능하다. 이와 같은 순차 계산(cascaded calculation)에 의한 라이트-스루의 실행은 클록-주기를 소 주기들로 분할할 필요성이 있음을 의미한다. 이것은 동일 클록 주기 내에 몇몇 하부 태스크들이 교대로 실행되어야 하므로, 각 클록 주기가 소정의 최단 길이 이상으로 되어야 한다는 것을 의미한다. 그러므로, 클록 주기의 소 분할은 클록 주파수가 무한히 증가될 수 없음을 의미한다.
어느 하나의 기록-포트들과 어느 하나의 판독-포트들 사이에서의 어드레스의 일치를 검출하도록, 기록-포트들 및 판독-포트들 각각에 여분의 논리(extra logic)를 제공하는 것이 라이트-스루를 실행하는 또 다른 가능한 방법이다. 이와 같은 일치가 검출될 때마다, 소정의 기억 장소에 기록되는 데이터가 이 기억 장소를 어드레스하는 각각의 판독-포트로 즉시 전송될 수 있다. 기록- 및 판독-경로들 내의 여분의 논리를 사용하는 방법은 결과적인 성능 저하 및 칩 영역의 소모 등의 단점이 있다.
다음으로, 소정의 기억 장소를 향한 하나 이상의 기록 액세스가 하나의 동일한 주기 동안 발생하는 경우를 고려한다. 두개의 상이한 기록 포트들을 경유하여 하나의 기억 장소에 동일 데이터가 기록되는 경우에, 이러한 문제점에 대한 해결책은 의외로 간단한데, 이는 하나의 단일 기록 액세스로 전적으로 충분하기 때문에, 다른 파이프의 기록-액세스를 하나의 파이프가 억제하는 것이다.
그러나, 하나의 어드레스를 향하는 최소한 두개의 기록 액세스들이 하나의 동일한 주기 내에서 실행되고, 그 기록 액세스들이 상이한 데이터를 기록하려고 하는 경우도 존재한다. 수개의 파이프들을 경유하여 액세스되는 상태 비트들의 어레이를 생각할 수도 있다. 각각의 액세스가 상이한 비트들을 수정할 수 있으므로, 상이한 기록-액세스들 각각에 의해 기록된 데이터는 틀릴 수도 있다. 이 상태 비트들에 모든 변경들을 기록할 필요가 있기 때문에, 그것들이 동시에 발생하더라도, 기록-액세스들 중 하나를 제외한 모두에 대한 전체적인 억제는 정확한 결과를 가져오지 않는다.
하나의 기억 어드레스에 동시 기록-액세스들의 문제에 대한 한가지 해결 방법은 기록-액세스들의 순차 계산용 수단을 제공하는 것이다. 각각의 소 주기 내에서, 하나의 기록-액세스가 처리될 수 있으며, 기록 액세스들의 이와 같은 순차적인 처리에 의해서, 제시간에 각 점에서의 정확한 상태를 유지하는 것이 가능하다. 이 경우에도, 클록-주기를 분할하는 것은 최대 가능 클록 주파수 상에 한계가 주어지는 단점이 있다.
수개의 기록 액세스들이 하나의 결과적인 기록-액세스와 결합하도록, 기록 경로들 내에 여분의 논리를 실행하는 것이 하나의 동일한 기억 어드레스로의 동시기록-액세스들의 문제에 대한 또 다른 해결 방법이다. 상태 비트들의 어레이가 수개의 기록 파이프들을 경유하여 업데이트된 경우, 다량의 곤란한 여분 논리가 성능을 저하시키는 문제가 있다. 특히, 다수의 기록 파이프들의 경우에, 모든 가능한 기록-액세스들의 조합이 여분 논리에서 고려되어야 한다.
상술한 모든 해결 방법들은 수개의 기록 포트들을 경유하여 복수의 기록 파이프들에 의해 액세스되는 하나의 다중 포트 셀에 기초한다. 수개의 기록 파이프들을 경유하여 칩 상의 다양한 기구들에 의해서 업데이트되는 상태 정보를 기억 어레이가 포함하는 예를 고려하자. 이것은 상태 비트들의 중심 어레이로 상기 기구들 각각을 접속하는 물리적인 기록 경로들을 필요로한다. 따라서, 다중 포트 셀은 다수의 상이한 칩 장소들에 접속되어야 하며, 그러므로 칩 배열 및 칩 배선을 심각하게 제한하는 “핫스팟(hotspot)”을 항상 포함한다.
종래 기술의 해결 방법들에 있어서의 단점들을 제거하며, 복수의 파이프들을 경유한 기억 장소로의 동시 액세스들을 기록할 수 있는 다중-기록 포트 셀의 기능성을 갖는 기억 소자를 제공하는 것이 본 발명의 목적이다.
본 발명의 또 다른 목적은 중앙화된 다중-기억 포트 셀을 동일한 기능을 갖는 분배된 기구로 대체하는 것이다.
또한, 본 발명의 목적은 업데이트를 동시에 실행할 수 있는 다중 액세스 경로들에 의해서 업데이트되는 상태 정보를 기록하기 위한 기억 소자를 제공하는 데에 있다.
본 발명에 따른 기억 소자 세트, 본 발명에 따른 기억 소자 세트에 데이터를 저장하기 위한 방법 및 본 발명에 따른 기억 소자 세트로부터 데이터를 얻기 위한 방법에 의해서 본 발명의 목적은 해결된다.
상이한 기록-파이프들을 경유한 복수의 동시 액세스들을 허용하기 위하여, 다중-기록 포트 셀 대신에 기억 소자 세트가 제공된다. 상기 기억 소자 세트 내에 포함된 데이터가 얻어질 때마다, 기억 소자 세트 중 몇몇 기억 소자들의 내용들이 함께 고려되어야 한다. 유용한 정보는 하나의 단일 기억 소자에는 포함되지 않는 대신에 기억 소자 세트의 소 세트 C(예를 들어, 칼럼)의 내용들이 결합되어야 한다. 기억 소자 세트의 실제 내용을 결정하기 위하여, 소 세트 C의 내용들을 판독한 후 그 내용들에 판독-함수가 적용되어야 한다.
기억 소자 세트 중에서 유용한 정보를 분배하는 것은 상기 기억 소자들 중 어느 하나로의 기록-액세스에 의하여 이 정보를 수정할 수 있도록 한다. 따라서, 수개의 파이프들을 경유한 동시 기록-액세스들이 가능해 진다.
기억 소자 세트에 의해서 표현되는 정보를 수정하기 위하여, 다음과 같은 방법이 실행되는데: 우선, 기록되지 않을 기억 소자들의 내용들을 판독한다. 이들 기억 소자들의 상태에 따라, 그리고 전체 기억 소자 세트 내에 포함된 의도하는 내용에 따라, 모든 어레이들이 전체적으로 의도하는 내용을 표현하기 위하여, 어레이 세트의 다른 하나의 소 세트가 어떻게 수정되어야 하는지가 계산된다.
그러므로, 상기 기억 소자 세트로의 기록-액세스를 위하여 이하의 단계들이 필요하다:
기억 소자 세트의 소 세트 A로부터 내용들을 판독하는 단계;
기록-함수의 출력으로서, 기억 소자 세트의 소 세트 B에 기록되는 값들의 제2 세트를 결정하도록, 기억 소자 세트의 소 세트 A의 내용들 및 기억 소자 세트 내에 포함될 값들의 제1 세트에 기록-함수를 적용하되, 기억 소자 세트의 소 세트 A 및 기억 소자 세트의 소 세트 B가 공통 기억 소자를 갖지 않도록 하는 단계;
기억 소자 세트의 소 세트 B에 상기 세트의 값들을 기록하는 단계.
기억 소자 세트에 데이터를 저장하고 이 기억 소자들로부터 데이터를 얻도록 제안된 방법은 다중-기록 포트 셀에 비해 많은 장점들을 가진다. 기록 경로들 내에 여분의 논리를 필요로하지 않고, 또한 클록 주기를 소 주기들로 분할하지 않고, 기억 소자 세트로의 동시 액세스를 할 수 있는 것은 이들 장점들 중 하나이다. 이는 또한 기록 경로들에서 어떠한 지연도 초래하지 않으며, 클록 주기가 오히려 단축될 수 있는 등의 성능의 향상을 가능하게 한다.
기억 소자 세트의 모든 기억 소자들에 정보가 포함되기 때문에, 다중-기록 포트 셀에서의 경우와 같은 “핫스팟”이 없다. 기록-경로들은 하나의 중심 기억 소자로 액세스하지 않는 대신에 각각의 기록 경로는 상이한 기억 소자로 액세스한다. 이러한 구조는 레이아웃을 단순화하고 칩 상의 기억 소자들의 배치를 융통성있게 하여 배선 과정을 용이하게 하는 분산 구조를 가능하게 한다.
본 발명에 의해서 제안된 기억 소자 세트는 소정 개수의 기록 파이프들에 맞추어 변경될 수 있다는 것이 본 발명의 또 다른 장점이다. 하나의 판독 포트 및 하나의 기록 포트를 포함하는 간단한 기억 소자들을 사용할 수 있으며, 이들 단순장치들로써 k개의 기록 파이프들을 포함하는 다중-기록 포트 셀의 기능성을 얻을 수 있다.
또 다른 장점은 제안된 기억 소자 세트가 테스트를 위한 더 양호한 조건들을 제공한다는 것이다. 통상적으로, 기억 소자는 랜덤한 패턴을 기억 소자에 기록하고, 이들 패턴들을 다시 판독하며, 그리고 기호(signature)를 얻기 위하여 입력 및 출력-패턴을 비교하는 방식으로 테스트된다. 오류가 발생할 경우에는, 이 오류는 상기 기호를 관찰함으로써 보여질 수 있다. 상이한 기록 포트들에 랜덤한 패턴들을 기록함으로써 다중-기록 포트 셀을 시험할 때, 하나의 기록-파이프는 소정의 기억 셀에 “0”을 기록하려 하고, 또 다른 기록 파이프는 “1”을 갖는 동일 셀에 액세스하려고 하는 곳에서 상황이 발생할 수 있다. 그리하여, 기억 셀의 규정되지 않은 상태가 나타난다. 본 발명에 따른 기억 소자 세트를 사용함으로써, 상이한 기록 파이프들을 경유한 랜덤한 패턴 테스팅이 실행될 수 있으며, 그러한 규정되지 않은 상태들은 일어나지 않는다. 테스팅이 점점 중요해 지기 때문에, 이것은 더 큰 장점이 된다.
본 발명의 양호한 실시예에서, 기록-함수 및 판독-함수는 기함수들(ODD-functions)로서 실현된다. 판독- 및 기록-함수들에 부과되는 요구들을 충족하기 가장 쉬운 함수가 기함수이다. 그것은 XOR-게이트들의 순차로서 매우 용이하게 실행될 수 있으며, 간단하고 저렴한 해결 방법을 제공한다.
본 발명의 또 다른 실시예에 따라서, 어느 기록-파이프가 기억 소자 세트에 액세스하는 가에 따라 기억 소자 세트의 소 세트들 A 와 B가 결정된다.
기록 액세스가 발생하는 상기 소 세트들 B와 다양한 기록 파이프들 사이의 대응이 확정된다. 단지 공통 소자들을 갖지 않는 상이한 소 세트 B에 상이한 기록-파이프들의 기록-액세스들을 지정함으로써, 동시 기록-액세스들이 가능하게 된다.
본 발명의 또 다른 실시예에서, 기억 소자의 상기 세트에 포함된 값들의 세트는 상태 정보이며, 특히 MRU/LRU 상태 정보이다.
칩 상의 상이한 위치에 배치될 수 있는 다수의 상이한 원천들에 의해서 상태 정보가 업데이트되어야 하기 때문에, 상태 정보는 기억 소자 세트 내에 포함되기에 특히 적절하다. 상태 정보를 업데이트하는 각각의 기구가 기억 소자에 대응하여 액세스할 수 있고 동시에 업데이트들이 기록될 수 있으므로, 중앙화된 “핫스팟” 다중-기록 포트 셀을 기억 소자들의 배열로 대체하는 것은 상태 정보에 특히 유용하다.
도 1a는 판독-함수에 의하여 어레이 세트의 내용들을 압축함으로써 결과값이 어떻게 얻어질 수 있는 지를 도시한 도면.
도 1b는 파이프 2를 경유하여 어레이 세트를 향한 기록-액세스가 어떻게 실행되는 지를 도시한 도면.
도 1c는 파이프 1를 경유하여 어레이 세트를 향한 기록-액세스가 어떻게 실행되는 지를 도시한 도면.
도 2a는 XOR-함수들의 순차로서 어떻게 기함수(ODD-function)가 실현될 수 있는 지를 도시한 도면.
도 2b는 기함수의 진리표를 도시한 도면.
도 3은 대각 소자들인 어레이 11 및 어레이 22가 제거된, 2개의 기록 파이프들을 포함하는 어레이 세트의 선택 실시예를 도시한 도면.
도 4는 대각 소자들을 대체할 여분 판독 어레이들 R1 및 R2가 어떻게 제공될 수 있는 지를 묘사한 도면.
도 5는 어레이들 11, 22 및 33이 제거된, 3개의 기록 파이프들을 포함하는 어레이 세트를 위한 선택적인 셋업(setup)을 도시한 도면.
도 6a는 k개의 기록 파이프들을 설치할 수 있는 k×k 어레이 세트 내의 판독-액세스를 도시한 도면.
도 6b는 k×k 어레이 세트를 향하여 파이프 3을 경유한 기록-액세스가 어떻게 실행될 수 있는 지를 도시한 도면.
도 7은 MRU/LRU 상태 비트들이 4중 세트 결합 캐시 내의 입력들의 순서를 표시하는데 어떻게 사용되는 지를 도시한 도면.
도 8은 칼럼들(Va, Vb, Vc, Vd) 중의 하나 내의 엔트리가 액세스될 때마다 개개의 6개의 MRU/LRU 상태 비트들(X1, X2, ...X6)이 어떻게 변경되어야 하는 지를 도시한 도면.
도 9는 2개의 기록 파이프들을 포함하는 어레이 세트 내에서 MRU/LRU 정보가 어떻게 저장되고 업데이트 될 수 있는지를 도시한 도면.
<도면의 주요 부분에 대한 부호의 설명>
601 : 판독-함수(read function)
611 : 파이프
612 : 기록-함수(write function)
614 : 데이터-인 레지스터 및 기록 제어부
본 발명에 따라서, 데이터가 기록될 수 있고 데이터가 판독될 수 있는 단일 어레이를 동일 정보를 포함할 수 있는 어레이 세트로 대체하는 것이 제안된다. 도 1a에서는 어레이 11, 어레이 12, 어레이 21, 어레이 22의 4개의 어레이 세트가 도시된다. 어레이들은 2개의 칼럼 및 2개의 로우로 배치된다. 도 1a는 어레이 세트로의 판독-액세스가 어떻게 실행되는 지를 도시한다. 어레이들 11, 12, 21 및 22는 단독으로는 유효 데이터를 포함하지 않는다. 어레이 세트로부터 유효 데이터를 얻기 위하여, 칼럼들 중 어느 하나의 모든 어레이들 내에 포함된 정보를 결합하는것이 필요하다.
도 1a에서는 칼럼 2의 어레이들로부터 결과값들이 얻어 진다. 어레이 12 및 어레이 22의 내용들은 이들 입력들에 “판독-함수”을 제공하는 기구(facility, 101)로 전송된다. 이 판독-함수로써, 어레이 세트의 결과값들을 얻기 위하여 어레이 12 및 어레이 22의 데이터가 결합된다. 가능한 판독-함수의 예는 기함수(ODD-function)이다.
칼럼 2의 어레이들의 내용들을 압축하지 않고, 칼럼 1의 어레이들의 내용들을 결합하는 것도 가능하다. 한 칼럼의 모든 어레이들이 함께 유용한 데이터를 구성하지만, 세트를 구성하는 각각의 어레이들 단독으로는 유용한 데이터를 포함하지 않는다는 점이 중요하다.
도 1b는 어레이 세트로의 기록-액세스가 파이프 2를 경유하여 어떻게 수행되는 지를 도시한다. 어레이들 11, 12, 21 및 22의 2×2 세트에 2개의 기록 파이프를 접속할 수 있다.
각각의 기록 파이프는 기록 파이프에 대응한 로우의 어레이들로의 기록 조작을 일으킨다. 도 1b의 경우에, 파이프 2를 경유한 기록-액세스는 어레이 21 및 어레이 22를 포함하는 로우 2의 어레이들로의 기록 조작을 일으킨다. 로우 2의 어레이들에 기록될 값들은, 이 경우에는 로우 1의 내용들을 갖는 다른 어레이들의 내용들과 결합되어 판독될 때만이 의미를 갖는다.
기록 조작이 실제로 실행되기 전에, 어레이 세트의 실제 상태가 결정되어야 한다. 그러기 위하여, 한 칼럼 내의 어레이들의 모든 값들은 기록-함수(104)을 실행하는 기구로 전송된다(102). 로우 2의 어레이들이 중복 기록될 때는, 기록-함수로 이 로우의 어레이들의 내용을 전송하는 것은 불필요하다. 왜냐하면, 어레이 22의 내용이 기록-함수로 전송되지 않기 때문이다. 한 칼럼의 어레이들의 내용들은 기록-함수로의 하나의 입력(102)를 대표하며, 소정의 결과값은 기록-함수(104)의 제2 입력(103)을 포함한다. 소정의 결과가 “홀수”라면, 기록-함수로 파이프 2를 경유하여(103) “1”이 전송된다. 소정의 결과가 “짝수”인 경우에는, 기록-함수로 “0”이 전송된다. 로우 2에 기록될 출력 값들을 생성하기 위하여, 기록-함수는 실제 칼럼 내용들과 소정의 결과값들을 결합한다(105).
상기 값이 로우 2에 실제로 기록(107)될 수 있기 전에, “데이터-인 레지스터 및 기록 제어부”(106)로 불리는 스테이지를 통과하여야 한다. 이 스테이지에 의해서, 기록 액세스의 억제를 강제하는 조건들이 고려된다. 파이프 1 및 파이프 2가 모두 동일 기억 장소에 동일 데이터를 기록하려 하는 것은 이들 조건들 중의 하나이다. 이와 같은 경우에는, 단지 파이프 1의 기록 액세스만이 통과할 수 있으며, 파이프 2의 기록 액세스는 억제된다. 이 조건은 기록 제어 기구(106)에서 검사된다.
기록 액세스가 통과되는 경우, 기록 액세스가 개시되었던 기록 파이프에 대응하는 로우의 어레이들에 기록-함수(104)에 의해서 계산된 값이 기록될 것이다.
실제 칼럼 내용들로부터 및 소정의 결과값으로부터 하나의 로우에 기록되는 값을 생성하는 것이 기록-함수의 목적이다. 어떤 칼럼의 내용들을 결합하였을 때, 소정의 결과값이 얻어질 방식으로 기록-함수의 출력 값이 계산되어야 한다. 이 스테이지에서 사용될 수 있는 가능한 수학적인 함수가 기함수이다. 기함수는, 그 입력에 인가되는 “1”의 개수가 짝수개라면, 그 출력에 “0”을 되돌리며, 그 입력에 인가되는 “1”의 개수가 홀수개라면, 그 출력에 “1”을 되돌린다. 기함수 이외에, 판독- 또는 기록-함수들로서 사용될 수 있는 다른 수학적 함수들을 생각할 수도 있다.
도 1c에서는 파이프 1을 경유한 어레이 세트로의 기록 액세스가 도시된다. 다시, 첫번째 단계로서, 제1 입력으로서 기록-함수(112)으로 한 칼럼(여기서는, 칼럼 1)의 내용들을 전송(110)함으로써 어레이 세트의 실제 내용이 액세스된다. 소정의 결과값은 기록-함수로 파이프 1을 경유하여(111) 제2 입력으로서 전송된다. 이들 두 입력들로부터, 파이프 1에 대응하는 어레이들의 로우-도 1c에서는 로우 1-에 기록되는 값을 기록-함수는 생성한다. 기록-함수의 출력값이 상기 로우의 어레이들에 기록되기 전에, 기록 액세스를 억제하기 위한 조건들이 그 안에서 검사되는 “기록 제어부”스테이지(114)를 통과하여야 한다. 기록 액세스가 허용되는 경우, 어레이 세트의 로우 1의 어레이들 11 및 12에 기록-함수의 결과값이 기록된다.
도 2a는 각각 2개의 입력들을 갖는 XOR-게이트들의 순차로써 기함수가 어떻게 실현될 수 있는 지를 도시한다. XOR-게이트들 200 및 201을 포함하는 제1 스테이지에서, 5개의 초기 입력들이 3개의 신호 라인들로 압축된다. 이들 신호 라인들 중 둘은 하나의 출력을 생성하는 제2 스테이지의 XOR-게이트 202로의 입력으로서 사용된다. 기함수 205의 최종 출력을 생성하는 제3 스테이지의 XOR-게이트 204로 입력 203과 함께 이 출력은 전송된다. 이와 같은 XOR-순차의 셋업은 다음과 같이요약될 수 있다: 각 스테이지의 가능한 한 많은 입력들이 상기 스테이지에 의해서 압축되기 때문에, 잔유 신호 라인들은 후속 스테이지로 전송된다.
도 2b는 3개의 입력들을 갖는 기함수의 진리표를 도시한다. 입력들 중 홀수개가 “1”일 때마다, 기함수의 출력도 역시 “1”이다. 입력들 중 짝수개가 “1”일 때마다, 기함수의 출력은 “0”이다. 기함수에 의해서, 어떠한 개수의 입력들도 하나의 출력으로 압축될 수 있다.
도 3은 2개의 기록 파이프들을 갖는 어레이 세트의 간단한 실시예를 도시한다. 어레이 세트의 2개의 대각 요소인 어레이 11 및 어레이 22는 제거된다. 이와 같은 어레이들의 단순화된 세트로써, 도 1a, 1b 및 1c에서 설명된 것과 동일한 기능성이 역시 달성될 수 있다.
파이프 1을 경유하는(300) 기록-액세스를 실행할 때, 도 1c에서 보여질 수 있는 바와 같이, 개개의 기록-함수(302)로 어레이 21(309)의 실제 내용을 전송하는 것 만이 필요하다. 어레이들 11 또는 22 중 어느 하나로 액세스하는 것은 불필요하다. 기록 제어부(303)을 경유하여 어레이 12(304)의 기록 포트로 기록-함수(302)의 출력이 전송된다. 이것은 기록-함수의 출력이 로우 1의 모든 어레이들(어레이 11 및 어레이 12)에 기록되는 도 1c에 묘사된 상황과는 차이가 있다. 어레이 11이 도 3에서는 제거되었기 때문에, 어레이 12로의 기록 액세스 만이 실행된다(304).
파이프 2를 경유한 기록 액세스가 실행될 때에도, 상황은 유사하다. 도 1b에서와 같이, 어레이 12(304)의 내용은 제1 입력으로서 기록-함수(307)으로전송(306)된다. 파이프 2(305)는 기록-함수(307)의 제2 입력을 구성한다. 2개의 값들 모두로부터, 파이프 2에 대응하는 로우에 기록될 값을 기록-함수(307)이 결정한다. 어레이 22가 제거되었기 때문에, 기록 제어부(308)를 경유하여 어레이 세트 내의 로우 1의 단지 잔유하는 어레이 21(309)의 기록 포트에만 단지 기록-함수(307)의 출력값이 기록된다.
감소된 어레이 세트로부터 유효 결과값들을 얻을 수 있는 가능성의 여부가 문제된다. 도 1a를 보면, 어레이 세트의 실제 내용을 결정하기 위해 완전한 칼럼 1이나 완전한 칼럼 2 중 어느 하나가 필요하다는 인상을 가질지도 모른다. 그로나, 실제로는 어레이들 11 및 22가 제거되었을 때에도, 판독-함수는 여전히 실행될 수 있다. 어레이 세트로의 기록-액세스가 실행될 때, 어레이 세트의 하나의 전체 로우가 어드레스된다. 이것은 어레이 21이 언제나 어레이 22와 동일한 정보를 포함하며(도 1b로부터 보여질 수 있는 바와 같이), 어레이 12는 언제나 어레이 11과 동일한 정보를 포함한다(도 1c로부터 보여질 수 있는 바와 같이)는 것을 암시한다.
그러므로, 유효한 판독-함수를 실행하기 위하여 사전에 필요한 것은 로우 1 중에서 하나의 어레이와 로우 2 중에서 하나의 어레이를 선택하여, 판독-함수에 의해서 이들 두 어레이들의 내용을 결합하는 것이다. 어레이 12가 로우 1의 부재이고 어레이 21은 로우 2의 부재이기 때문에, 어레이 12(304) 및 어레이 21(309)의 내용을 판독-함수(312)으로 전송함으로써 도 3의 어레이 세트의 실제 값을 얻을 수 있다. 이와 같이, 도 3에 따른 감소된 어레이 세트를 가지고도 도 1a, 1b 및 1c의 모든 기능을 얻을 수 있다. 그러나, 도 3에 따른 해결 방법에서는 하나의 판독 포트는 판독-함수로의 입력으로 작동하며 다른 하나의 판독 포트는 기록-함수로의 입력으로 작동하는 2개의 입력 포트를 어레이 12 및 어레이 21이 각각 가져야만 한다는 것을 주지하여야 한다.
판독-함수에 의해서 어레이 세트의 실제 내용을 얻기 위하여 “대각” 어레이들, 즉 어레이 11과 22가 첫번째로 유용하다는 것 까지는 지금 까지 설명된 것으로부터 명확하다. 어레이들이 다른 방식으로 배치되는, 2개의 기록 파이프를 갖는 어레이 세트에 대한 또 다른 실시예는 도 4에 주어진다. 앞서의 해결 방법에서와 같이, 어레이 21(401)의 내용은 판독되어, 기록-함수(402)으로 제1 입력으로서 제공된다. 파이프 1은 기록-함수(402)에 제2 입력을 제공한다(400). 다음으로, 기록-함수(402)의 출력은 기록 제어부(403)를 통하여 통과된다. 앞선 해결 방법(도 1c)에서는, 이 출력이 어레이 11 및 어레이 12에 기록되었다. 도 4의 해결 방법에서는, 어레이 11(411)은 판독 어레이 R1(410)으로 대체되어 진다. 기록-함수(402)의 출력값은 어레이 12(406) 및 판독 어레이 R1(410) 모두에 기록되지 않는다(404).
파이프 2의 기록 경로는 그에 따라서 작동한다(405). 파이프 2는 기록-함수(407)로 제1 입력으로서 작동하며(405), 어레이 12(406)의 내용이 기록-함수로 제2 입력으로서 전송된다. 또한, 출력값이 통과하여야 하는 기록 제어부(408)가 존재하는데, 이것은 기록 액세스를 억제할 수 있다. 앞선 해결 방법들에서, 어레이 21(401) 및 어레이 22(413)를 포함하는 어레이 세트의 로우 2(도 1b)에 출력이 기록되었다. 어레이 22는 판독 어레이 R2(412)로 대체되어 진다.
어레이 세트에 포함된 실제값을 판독하기 위하여, 도 1a의 판독-함수는 하나의 칼럼 내에 포함된 어레이들로 액세스하였다. 어레이들 11 및 21을 어드레스함으로써, 또는 어레이 12 및 22를 어드레스함으로써 그 값이 얻어질 수 있었다. 어레이들 12 및 21이 판독-함수 및 기록-함수 모두에 의해서 어드레스 된다는 것이 이 해결 방법에서의 단점이다. 그러므로, 2개의 판독-포트가 필요하다.
도 4에 묘사된 해결 방법은 판독 어레이들 R1(410) 및 R2(412)를 경유하여 판독 액세스를 실행하는데, 이 어레이들은 어레이들 11 및 22의 대체로서 생각될 수 있다. 로우 1로의 기록 액세스(404)가 일어날 때마다 판독 어레이 R1(410)이 업데이트되며, 로우 2로의 기록 액세스(409)이 일어날 때마다 판독 어레이 R2(412)가 업데이트되기 때문에, 판독 어레이 R1 및 R2는 어레이 세트의 완전한 정보를 함께 포함한다. 상기 판독-어레이들의 내용들로부터, 계산하는 기록-함수에 의해서 판독 어레이들 410 및 412가 모두 액세스되기 때문에, 그 값들은 어레이들의 상기 세트 내에 실제로 포함되었다(415). 사용된 어레이들, 즉 어레이 12, 어레이 21, 어레이 R1 및 어레이 R2 각각이 단지 하나의 단일 판독-포트를 가져야 한다는 것이 본 해결 방법의 장점이다. 지금까지 설명된 다른 해결 방법들에서, 어레이들 12 및 21은 적어도 2개의 판독-포트를 구비하여야 하였다.
도 5는 3개의 기록 파이프를 경유하여 액세스되는 어레이 세트의 실시예를 도시하는데, 그 때문에 “대각” 어레이들 11, 22 및 33이 제거된다. 따라서, 어레이들의 개수를 9에서 6으로 감소시키는 것이 가능하게 된다. 이것은 3분의 1 만큼 필요한 칩 공간을 줄일 수 있게 한다. 필요한 어레이들의 개수가 더 적은 것을상쇄하기 위하여, 어레이들 중 적어도 3개는 2개의 판독 포트들이 구비되어 져야 한다. 그러나, 도 5에서는 상이한 기록 파이프들을 경유한 동시 기록-액세스들을 할 수 있는 하나의 어레이에 대한 문제점에 대한 저렴하면서도 용이하게 실현할 수 있는 해결 방법을 표현한다.
먼저, 기록-액세스가 파이프 1을 경유하여(500) 발생하는 경우를 고려하자. 파이프 1의 데이터와 함께, 어레이 21(502) 및 어레이 31(503)의 내용들은 기록-함수(501)로 전송된다. 로우 1에서는 발생하지 않고, 그러므로 파이프 1을 경유하는 기록 액세스에 의해서 변경되지 않는 칼럼 1의 소자들이 어레이 21과 어레이 31이다. 이들 3개의 입력으로부터, 기록-함수(501)은 출력값을 계산하는데, 이것은 기록 제어부(504)로 전송된다. 기록 액세스가 억제되지 않는 경우에, 기록-함수(901)의 출력값은 로우 1의 모든 어레이들에 기록된다. 그렇지만, 어레이 11은 제거되었다. 그러므로, 로우 1의 어레이 12 및 어레이 13 만이 그들 개개의 기록 포트들을 경유하여 액세스(505, 506)된다.
파이프 2(507)를 경유한 기록-액세스가 그에 따라서 실행된다. 로우 2는 기록 액세스들에 의해서 수정될 것이기 때문에, 파이프 2에 의해 전송된 데이터 이외에, 로우 2에 포함된 것들을 제외한 칼럼 2의 모든 어레이들의 입력들을 기록-함수(508)이 수신하여야 한다. 그러므로, 어레이 12(509) 및 32(510)의 값들은 기록-함수(508)로 전송되어야 한다. 기록 제어부 511을 통과한 후, 이들 3개의 입력들로부터 로우 2의 모든 소자들에 기록되어야 하는 출력을 기록-함수 508이 생성한다. 어레이 22가 제거되었기 때문에, 데이터는 어레이 21(512) 및 어레이23(513)에 기록된다.
파이프 3을 경유하여(514) 실행되는 기록 액세스에 주목하면, 칼럼 3의 어레이들 13 및 23이 기록-함수(515)로 전송되어야 한다는 것은 분명하다. 상기 기록-함수의 출력은 로우 3의 어레이들 31 및 32(520, 519)에 기록된다.
어레이들 13, 23, 21, 23, 31 및 32를 포함하는 어레이 세트의 실제 내용을 결정할 수 있도록, 어레이들의 상기 세트의 로우당 하나의 어레이를 선택할 필요가 있다. 로우 1에서는, 어레이 12 및 어레이 13의 2개의 후보가 있다. 도 5의 실시예에서는, 어레이 13이 선택되었는데: 그 데이터는 판독-함수 524로 전송(521)된다. 로우 2 에서 하나의 대표를 판독-함수 524로 제공하기 위하여, 어레이 21이나 어레이 23 중 하나를 선택할 수 있다. 선택되는 것이 어레이 21이든 23이든, 그들이 동일한 데이터를 포함한다는 의미에서는 그 둘이 동등하기 때문에, 중요치 않다. 그들이 동일한 기록 경로(512, 513)를 갖는 다는 것을 고려한다면 더욱 분명하다. 본 실시예에서는, 어레이 21은 판독-함수 524로의 입력(522)으로서 선택된다. 로우 3의 가능한 후보들, 즉 어레이 31 및 어레이 32 중에서 어레이 31이 선택된다. 그 내용은 판독-함수 524로의 제3 입력으로서 전송된다. 이들 3개의 입력들 521, 522 및 523으로 상기 판독-함수 524를 적용함으로써, 어레이 세트의 실제 내용을 구할 수 있다.
도 6a 및 6b에서는, k개의 기록 파이프들을 수용할 수 있는 k×k 어레이 세트로까지 본 발명의 개념을 연장할 수 있는데, 이것은 상기 어레이 세트에 동시에 k개 까지의 기록-액세스를 실행할 수 있다. 상기 어레이 세트의 어레이들은 k 로우와 k칼럼으로 배치된다.
도 6a는 어레이 세트의 실제 내용이 어레이 세트의 칼럼 중 어느 하나에 액세스함으로써 어떻게 결정될 수 있는 지를 도시한다. 본 실시예에서는, 칼럼 3의 어레이들의 모든 내용들이 판독되어, 예를 들어 기함수일 수 있는 판독-함수 601로 전송된다. 칼럼 3의 모든 어레이들의 내용들이 출력값들의 “어레이”에 압축됨(602)에 따라서, 어레이 세트의 실제 내용이 결정된다(603).
도 6b는 파이프 3을 경유하는 k×k 어레이 세트로의 기록-액세스의 경우를 도시한다. 파이프 3을 경유한 기록-액세스(611)는 로우 3의 어레이들의 내용을 수정한다. 어레이 세트의 실제 전체 내용이 파이프 3을 경유하여 주어진 소정의 결과값과 동일하게 되도록, 로우 3에 어떤 값이 기록되어야 하는 지를 결정하는 것이 태스크이다. 로우 3의 일부가 아닌 한 칼럼의 모든 어레이들의 내용들은 기구(612)로 전송된다(610). 이들 어레이들의 내용들은 파이프 3을 경유하여(611) 주어진 소정의 결과값과 함께 예를 들어 기함수일 수 있는 기록-함수에 의하여 압축될 수 있다. 어레이 세트의 로우 3의 모든 어레이들에 저장되어지는 내용을 산술 연산(arithmetic operation)의 출력이 구성한다(613). 기억 연산이 실제로 실행되기 전에, 출력값들은 “데이터-인 레지스터 및 기록 제어부”스테이지(614)로 전송되는데, 여기서는 고려하고 있는 파이프와 동일한 어드레스로의 기록-액세스를 k개의 파이프들 중 어느 것이 실행할 지에 대한 검사가 행해진다. 두 파이프의 어드레스가 일치하면, 그 파이프들이 동등한 데이터를 기록하려 하는 지가 검사된다. 이것 또한 같다면, 두 기록 액세스들 중 어느 하나가 억제되어야 한다. 도 6b의실시예에서 파이프 3의 기록-액세스의 경우에는 억제되지 않고, 출력값들은 로우 3의 모든 어레이들에 기록된다(615).
도 7 내지 9에서는, 어레이 세트로의 기록-액세스들을 동시에 실행하는 방법이 캐시 관리 내의 MRU/LRU 상태 비트들의 어레이에 어떻게 적용될 수 있는지가 도시된다. 캐시 대체 알고리즘은 그들의 대체 방법들을 상기 MRU/LRU 상태 비트들에 기초하는데, 이들은 다양한 원천들로부터 업데이트된다.
도 7에서는, 캐시 엔트리들을 갖는 4개의 칼럼들(Va, Vb, Vc, Vd)을 포함하는 4중 세트 결합 캐시가 도시된다. 어드레스의 해시 함수는 캐시에 액세스하는데 사용되는데, 이것은 4개의 엔트리 위치들을 포함하는 소정의 로우가 어드레스의 해시 함수에 의해서 특정화되는 것을 의미한다.
하나의 로우의 엔트리들에 발생했던 액세스들의 과정에 의존하여, 엔트리들 사이의 순서가 책정될 수 있으며, 이것은 바로 전번 엔트리에 종속하여 액세스된다. 따라서, 4개의 엔트리들 중 하나는 가장 최근에 사용된 엔트리(MRU)이며, 또 하나는 두번째로 최근에 사용된 엔트리이며, 다른 또 하나는 세번째로 최근에 사용된 엔트리이고, 마지막 하나의 엔트리는 가장 마지막으로 최근에 사용된 엔트리(LRU)이다. 물론, 그 순서는 각 로우 마다 다르다. 예를 들어, 로우 700에서는, Va가 가장 최근에 사용된 엔트리(704)이고, Vd가 두번째로 최근에 사용된 엔트리(705)이며, Vb는 세번째로 최근에 사용된 엔트리(706)이고, Vc는 마지막으로 최근에 사용된 엔트리(704)이다. 로우 701에서는, Vd가 가장 최근에 사용된엔트리(704)이고, Va가 두번째로 최근에 사용된 엔트리(705)이며, Vc는 세번째로 최근에 사용된 엔트리(706)이고, Vb는 마지막으로 최근에 사용된 엔트리(704)이다.
새로운 엔트리가 소정의 로우에 기록될 때마다, 4개의 엔트리들 중 어느 하나를 지울 필요가 있다. 캐시 대체 알고리즘은 대체되기 위하여 마지막으로 최근에 사용되는 엔트리를 선택하는 것이다. 그러므로, LRU 엔트리는 새로운 엔트리에 의해 대체되어질 엔트리이다.
한 로우의 4개의 캐시 엔트리들의 순서는 MRU/LRU 상태 비트들 X1, X2, ... X6 로써 표시된다. 각각의 상태 비트에 대하여, 두개의 상태들, 즉 “짝”과 “홀”이 존재한다. 예를 들어, 엔트리들 Va와 Vb중 어느 것이 더 최근에 사용되었는 지를 표시하는 것이 X1이다. 로우 700의 경우에 Va가 Vb보다 더 최근에 사용되었다면, X1은 “짝”이다. 엔트리들 Va와 Vc중 어느 것이 더 최근에 사용되었는 지를 보이는 것이 비트 X2이다: Va가 Vc보다 더 최근에 사용되었다면, 그것은 “짝”으로 설정된다(이것은 로우 700에서도 같다). 따라서, Va가 Vd보다 더 최근에 사용되었는 지의 여부를 X3이 모니터한다. 로우 700에서는, Va가 Vd보다 더 최근에 사용되므로, X3은 “짝”이다. Vb가 Vc보다 더 최근에 사용되었는 지의 여부를 비트 X4가 표시하는데, 이것은 로우 700에서도 같다. X5는 Vb와 Vd사이의 관계를 모니터한다. 로우 700에서, Vd가 Vb보다 더 최근에 사용되므로, X5는 “홀”로 설정된다.X6에 대하여도 동일하며, Vc또는 Vd중 어느 것이 더 최근에 사용되는 지를 표시한다. 로우 700에서는, Vd가 더 최근에 사용되기 때문에, X6은 “홀”로 설정된다. 로우 701, 702 및 703에 주어진 엔트리들에 대하여, 최종 MRU/LRU 상태 비트들도 마찬가지로 주어진다.
도 8은 캐시의 칼럼들 Va, Vb, Vc, Vd중의 어느 하나 내의 엔트리가 액세스될 때, MRU/LRU 상태 비트들 X1, X2, ...X6 이 어떻게 변경되어야 하는 지를 표시한다.
칼럼 Va내의 엔트리가 액세스되는 경우, 칼럼 Va에 기록되는 새로운 엔트리가 가장 최근에 사용되었던 엔트리인 것은 캐시로의 최후의 액세스가 칼럼 Va방향이었기 때문이다. 그러므로, Va는 Vb, Vc및 Vd보다 더 최근에 사용되기 때문에, MRU/LRU 상태 비트들 X1, X2 및 X3은 그에 따라서 변경되어야 한다. 이것은 X1이 “짝”(800)으로 설정되어야 하며, X2는 “짝”(801)으로 설정되어야 하고, 마찬가지로 X3도 “짝”(802)으로 설정되어야 함을 뜻한다. 상태 비트들 X4, X5 및 X6은 Va와 연관되지 않는다. 대신에, 그것들은 Vb, Vc및 Vd의 순서에 관련되며, 이것은 칼럼 Va의 액세스에 의해 변경되지 않는다. 그러므로, 상태 비트들 X4, X5 및 X6은 본래대로 남아있으며(803, 804, 805), 어떠한 변경도 이들 상태 비트들에 행해지지 않는다.
따라서, 칼럼 Vb의 액세스가 발생할 때, X1은 “홀”(806)이 되어야 하며, X4는 “짝”(807)이 되어야 하며, X5는 “짝”(808)이 되어야 한다. 다른 모든 비트들(X2, X3, X6)은 변경되지 않는다.
도 9에서는 2개의 어레이들, 즉 어레이 12와 어레이 21의 세트 내에서 MRU/LRU 상태 정보가 어떻게 포함되고 업데이트 될 수 있는지를 도시한다. 본 실시예에 사용된 방법은 도 3에 주어진 방법과 동등하다.
어레이 12나 어레이 21 중 어느 것도 단독으로는 유효한 MRU/LRU 상태 정보를 포함하지 않는다. 유효 상태 비트들은 단지 어레이 12 및 어레이 21의 내용을 결합하는 것에 의해서만 얻어질 수 있다. 이것은 판독-함수(312)에 의해서 실행되는데, 여기서는 어레이 12 및 어레이 21의 내용들 상에 홀-운용(ODD-operation)을 실행한다. 초기에는, 어레이 12는 비트 패턴 “011000”을 유지하며, 어레이 21은 패턴 “001110”을 유지한다. 기함수의 결과가 “010110”(900)이다. 이것은 MRU/LRU 패턴 Vc, Va, Vd, Vb(901)에 대응한다.
시스템은 2개의 기록-파이프를 갖는다. 사이클 55에서는, 파이프 1을 경유한 기록 액세스가 일어난다. 도 8에 따라서, 이것은 X3이 “홀”(812)로 변경되어야 하며, X5도 “홀”(813)로 변경되어야 하고, 마찬가지로 X6도 “홀”(814)로 변경되어야 함을 뜻한다. 그러므로, 먼저 X3, X5 및 X6 비트들이 어레이 21로부터 판독된다. 다음으로, 이들 비트들의 값들이 전환되어(812, 813, 814), 어레이 12로 전송된다. 어레이 12의 다른 비트들, 즉 X1, X2 및 X4 비트들은 변하지 않고남아 있는다. 어레이 12 및 어레이 21의 새로운 내용들에 XOR이 행해지면, 비트 패턴 “011111”(902)이 나타나는데, 이것은 엔트리들의 다음과 같은 순서, 즉 “Vd-Vc-Va-Vb”(903)를 표시한다. 이것은 이 방법이 가장 최근에 사용된 엔트리로서 Vd를 지시하는데 성공하였다는 것을 의미한다.
사이클 56에서는, 파이프 1이 Vb에 액세스하며, 파이프 2는 Vc에 액세스한다. 어레이 21의 X1, X4 및 X5 비트들은 도 8에 따라서 수정되어 어레이 12에 기록된다. 어레이 12의 X2, X4 및 X6 비트들도 또한 도 8에 따라서 수정되어 어레이 21에 기록된다. 다른 모든 비트들(어레이 12의 X2, X3 및 X6 비트, 그리고 어레이 21의 X1, X3 및 X5 비트)은 변하지 않는다. 어레이 12 및 어레이 21의 새로운 내용들 상에 기함수를 실행한 후에는, 비트 패턴 “111000”(904)이 나타나는데, 이것은 엔트리들의 순서, 즉 “Vb-Vc-Vd-Va”(905)를 표시한다. 그러므로, Vb, Vc로의 두개의 기록 액세스들이 모두 정확하게 기록되어 진다.
상술한 바와 같이, 본 발명은 종래 기술의 해결 방법들에 있어서의 단점들을 제거하며, 복수의 파이프들을 경유한 기억 장소로의 동시 액세스들을 기록할 수 있는 다중-기록 포트 셀의 기능성을 갖는 기억 소자를 제공하였으며, 중앙화된 다중-기억 포트 셀을 동일한 기능을 갖는 분배된 기구로 대체하였고, 업데이트를 동시에 실행할 수 있는 다중 액세스 경로들에 의해서 업데이트되는 상태 정보를 기록하기 위한 기억 소자를 제공할 수 있었다.

Claims (11)

  1. 기억 소자 세트에 있어서,
    상기 기억 소자 세트의 소 세트(subset) A로부터 내용(contents)을 판독하기 위한 수단과,
    상기 기억 소자 세트의 소 세트 B에 한 세트의 값을 기록하기 위한 수단과,
    상기 기억 소자 세트의 상기 소 세트 A의 상기 내용들 및 상기 기억 소자 세트에 포함될 제1 결정값(first determined value)에 기록 함수(write function)를 적용함으로써, 상기 기억 소자 세트의 상기 소 세트 B에 기록되는 제2값을 결정하기 위한 수단과,
    상기 기억 소자 세트의 소 세트 C로부터 내용을 판독하는 수단과,
    상기 기억 소자 세트의 상기 소 세트 C의 상기 내용에 판독-함수(read-function)를 적용함으로써 상기 기억 소자 세트에 실제적으로 포함되는 값들의 세트를 결정하기 위한 수단
    을 포함하고,
    상기 기억 소자 세트의 상기 소 세트 A 및 기억 소자 세트의 상기 소 세트 B는 공통 기억 소자를 갖지 않으며,
    상기 기억 소자 세트의 상기 소 세트 A 및 상기 기억 소자 세트의 상기 소 세트 C는 적어도 하나의 공통 기억 소자를 가지고,
    상기 기억 소자 세트의 상기 소 세트 B 및 상기 기억 소자 세트의 상기 소세트 C는 적어도 하나의 공통 기억 소자를 가지는 기억 소자 세트.
  2. 제1항에 있어서, 상기 기록-함수가 기함수(ODD-function)인 기억 소자 세트.
  3. 제1항에 있어서, 상기 판독-함수가 기함수인 기억 소자 세트.
  4. 제1항에 있어서, 기록 액세스를 수행하기 위한 하나 이상의 기록 파이프를 더 포함함으로써, 서로 다른 기록 파이프들을 통하여 하나 이상의 기록 액세스가 동시에 발생할 수 있는 기억 소자 세트.
  5. 제4항에 있어서, 상기 기억 소자 세트의 상기 소 세트들 A 및 B가 상기 기록-파이프들 중 어느 것이 상기 기억 소자 세트에 액세스하는 지에 따라서 결정되는 기억 소자 세트.
  6. 제4항에 있어서,
    상기 기억 소자 세트는 각각 k 개의 기억 소자의 k 개의 로우 및 각각 k 개의 기억 소자의 k 개의 칼럼을 가지고,
    기록 파이프 i가 상기 기억 소자 세트에 액세스하는 경우에는,
    상기 기억 소자 세트의 상기 소 세트 A는 칼럼 i 및 로우 i에 모두 포함된 기억 소자를 제외하고 상기 기억 소자 세트의 칼럼 i에 포함된 모든 기억 소자를포함하고,
    상기 기억 소자 세트의 상기 소 세트 B는 상기 기억 소자 세트의 로우 i에 포함된 모든 기억 소자를 포함하고,
    상기 기억 소자 세트의 상기 소 세트 C는 상기 기억 소자 세트의 칼럼 i에 포함된 모든 기억 소자를 포함하는 기억 소자 세트.
  7. 제6항에 있어서, 각각의 상기 기억 소자들이 적어도 하나의 기록-포트 및 적어도 하나의 판독-포트를 포함하는 기억 소자 세트.
  8. 제6항에 있어서, 각각의 상기 기억 소자들이 기억 셀들의 어레이인 기억 소자 세트.
  9. 제6항에 있어서, 상기 기억 소자 세트에 포함된 값들의 세트가 상태 정보인 기억 소자 세트.
  10. 제6항에 있어서, 상기 기억 소자 세트에 포함된 값들의 세트가 MRU/LRU 상태 정보인 기억 소자 세트.
  11. 제2항 또는 제3항에 있어서, 상기 기함수는 XOR-게이트들의 캐스케이드(cascade)로서 구현되는 기억 소자 세트.
KR1019980017149A 1997-06-27 1998-05-13 동시에다중기록액세스가가능한기억장치어레이 KR100322718B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP97110556 1997-06-27
EP97110556.4 1997-06-27

Publications (2)

Publication Number Publication Date
KR19990006439A KR19990006439A (ko) 1999-01-25
KR100322718B1 true KR100322718B1 (ko) 2002-03-08

Family

ID=8226967

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019980017149A KR100322718B1 (ko) 1997-06-27 1998-05-13 동시에다중기록액세스가가능한기억장치어레이

Country Status (3)

Country Link
US (1) US6032233A (ko)
KR (1) KR100322718B1 (ko)
DE (1) DE19821581A1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6490654B2 (en) * 1998-07-31 2002-12-03 Hewlett-Packard Company Method and apparatus for replacing cache lines in a cache memory

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4322795A (en) * 1980-01-24 1982-03-30 Honeywell Information Systems Inc. Cache memory utilizing selective clearing and least recently used updating
US5471605A (en) * 1992-08-27 1995-11-28 Intel Corporation Apparatus for updating a multi-way set associative cache memory status array
US5611072A (en) * 1993-10-12 1997-03-11 Texas Instruments Incorporated Cache with an extended single cycle read/write system and method

Also Published As

Publication number Publication date
DE19821581A1 (de) 1999-01-07
US6032233A (en) 2000-02-29
KR19990006439A (ko) 1999-01-25

Similar Documents

Publication Publication Date Title
US5752260A (en) High-speed, multiple-port, interleaved cache with arbitration of multiple access addresses
US6243281B1 (en) Method and apparatus for accessing a segment of CAM cells in an intra-row configurable CAM system
US4845664A (en) On-chip bit reordering structure
US5864505A (en) Random access memory with plural simultaneously operable banks
US7490190B2 (en) Method and system for local memory addressing in single instruction, multiple data computer system
JPH06267283A (ja) データ書き込み可能な読み出し専用メモリ及びそのデータ書き込み/読み出し方法
US5388072A (en) Bit line switch array for electronic computer memory
JPH0668700A (ja) 半導体メモリ装置
JP3554478B2 (ja) 冗長アレイを備えるメモリ・アレイ及び管理方法
CN109712665B (zh) 存储器及存储器的功能测试方法
US6525987B2 (en) Dynamically configured storage array utilizing a split-decoder
US4326290A (en) Means and methods for monitoring the storage states of a memory and other storage devices in a digital data processor
JP2000353388A (ja) 内容参照可能メモリの改良
US6584022B2 (en) Semiconductor memory device with simultaneous data line selection and shift redundancy selection
KR100322718B1 (ko) 동시에다중기록액세스가가능한기억장치어레이
WO1981001208A1 (en) Data processor having common monitoring and memory loading and checking means
US4594690A (en) Digital storage apparatus including sections exhibiting different access speeds
US6629215B2 (en) Multiple port memory apparatus
JPH0438014B2 (ko)
US5873126A (en) Memory array based data reorganizer
JPH023163A (ja) 多ポートメモリ
US5875147A (en) Address alignment system for semiconductor memory device
US7356746B2 (en) Embedded testing circuit for testing a dual port memory
WO1992020068A1 (en) Fast memory system employing mostly good memories
US11221794B2 (en) Memory array element sparing

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
FPAY Annual fee payment

Payment date: 20070104

Year of fee payment: 6

LAPS Lapse due to unpaid annual fee