KR20080033338A - 데이터 및/또는 명령을 위한 적어도 2개의 실행 유닛들과적어도 하나의 제1 메모리 또는 메모리 영역을 갖는 컴퓨터시스템에 데이터 및/또는 명령을 저장하기 위한 장치 및방법 - Google Patents

데이터 및/또는 명령을 위한 적어도 2개의 실행 유닛들과적어도 하나의 제1 메모리 또는 메모리 영역을 갖는 컴퓨터시스템에 데이터 및/또는 명령을 저장하기 위한 장치 및방법 Download PDF

Info

Publication number
KR20080033338A
KR20080033338A KR1020087002749A KR20087002749A KR20080033338A KR 20080033338 A KR20080033338 A KR 20080033338A KR 1020087002749 A KR1020087002749 A KR 1020087002749A KR 20087002749 A KR20087002749 A KR 20087002749A KR 20080033338 A KR20080033338 A KR 20080033338A
Authority
KR
South Korea
Prior art keywords
data
memory
cache
unit
port
Prior art date
Application number
KR1020087002749A
Other languages
English (en)
Inventor
라인하르트 웨이버리
베른트 뮐러
에버하드 보엘
요르크 콜라니
라이너 그멜리치
Original Assignee
로베르트 보쉬 게엠베하
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 로베르트 보쉬 게엠베하 filed Critical 로베르트 보쉬 게엠베하
Publication of KR20080033338A publication Critical patent/KR20080033338A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3824Operand accessing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1629Error detection by comparing the output of redundant processing systems
    • G06F11/1641Error detection by comparing the output of redundant processing systems where the comparison is not performed by the redundant processing components
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1675Temporal synchronisation or re-synchronisation of redundant processing components
    • G06F11/1683Temporal synchronisation or re-synchronisation of redundant processing components at instruction level
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/084Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30181Instruction operation extension or modification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30181Instruction operation extension or modification
    • G06F9/30189Instruction operation extension or modification according to execution mode, e.g. mode flag
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/845Systems in which the redundancy can be transformed in increased performance

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

본 발명은 데이터 및/또는 명령을 위한 적어도 2개의 실행 유닛들과 적어도 하나의 제1 메모리 또는 메모리 영역을 갖는 컴퓨터 시스템에 데이터 및/또는 명령을 저장하기 위한 장치 및 방법에 관한 것이며, 이 경우 전환 수단이 제공되어 적어도 2개의 작동 모드들 사이가 전환되고, 비교 수단이 제공되어 제1 작동 모드는 비교 모드에, 제2 작동 모드는 실행 모드에 상응한다. 본 발명에서, 상기 장치 내에 제2 메모리 또는 메모리 영역이 포함되고, 이 경우 상기 장치는 캐시 메모리 시스템으로서 형성되며, 적어도 2개의 분리된 포트를 구비한다. 하나의 포트는 제1 실행 유닛에 직접 연결되고, 제2 포트와 적어도 제2 실행 유닛 사이에 제3 장치가 포함되며, 이는 제2 메모리 또는 메모리 영역에 대한 제2 실행 유닛의 액세스가 상기 제3 장치에 의해서 실행되도록 구성된다.
실행 유닛, 전환 수단, 비교 수단, 캐시 메모리 시스템, 포트

Description

데이터 및/또는 명령을 위한 적어도 2개의 실행 유닛들과 적어도 하나의 제1 메모리 또는 메모리 영역을 갖는 컴퓨터 시스템에 데이터 및/또는 명령을 저장하기 위한 장치 및 방법{DEVICE AND METHOD FOR STORING DATA AND/OR COMMANDS IN A COMPUTER SYSTEM HAVING AT LEAST TWO EXECUTION UNITS AND AT LEAST ONE FIRST MEMORY OR MEMORY AREA FOR DATA AND/OR COMMANDS}
본 발명은 신속한 버퍼 메모리(캐시)를 갖는 마이크로 프로세스 시스템에 관한 것이며, 이 문서에서는 듀얼 포트 캐시 및, 선택적으로 서로 독립되게 작동하거나 동일한 태스크를 처리하는 적어도 2개의 실행 유닛들을 갖는 데이터 처리 시스템 내의 그 적용을 설명한다.
복수의 실행 유닛들(코어, 프로세서)이 가변의 방식 즉, 다양한 작동 모드들 내에서 서로 상호 작용하는(예컨대 DE 103 32 700 A1호) 멀티 프로세서 아키텍쳐의 경우, 적어도 2개의 상이한 모드들 사이는 명령을 통해서 전환될 수 있으며 동일한 태스크의 처리 시, 발생된 데이터들을 서로 비교할 수 있어야 한다.
프로세서들에는 명령어들과 데이터들에 대한 액세스를 가속하기 위해서 캐시가 장착된다. 이는 한편으로 데이터양이 일정하게 증가하는 경우 및, 다른 한편으로 점점 신속하게 작업하는 프로세서들을 갖는 데이터 처리부의 복잡성이 증가하는 경우에 필요하다. 캐시에 의해, 큰(메인) 메모리에 대한 더딘 액세스가 부분적으로 방지되며 이 경우 프로세서는 데이터의 제공을 기다려서는 안된다. 명령만을 위한 캐시 및 데이터들만을 위한 캐시가 공지되어 있지만, 데이터 및 명령어가 동일한 캐시에 저장된 "통합 캐시"도 공지되어 있다. 또한 캐시의 복수의 레벨(계층 레벨)을 갖는 시스템들도 공지되어 있다. 이와 같은 다단의 캐시는 다양한 레벨 상에서 캐시의 스텝화된 메모리값과 다양한 유형의 어드레싱 전략으로써 프로세서와 (메인) 메모리 사이의 속도를 최적으로 실행하기 위해 사용된다. 멀티 프로세서 시스템의 경우, 각각의 프로세서에 하나의 캐시를 또는 멀티-레벨 캐시의 경우 상응하는 복수의 캐시를 설치하는 것이 일반적이다. 그러나 US 특허 4345309호에 설명된 바와 같이 다양한 프로세서들에 의해서 어드레싱될 수 있는 복수의 캐시가 존재하는 시스템들도 공지되어 있다.
여기서 설명한 방법을 갖지 않는 시스템에서, 발생된 (비교기)의 데이터들을 비교하기 위한 유닛은 가능한 실시 내에서 캐시 뒤에 배치된다. 이로써 데이터들은 재기록에서야 비로소 메인 메모리 내의 캐시에 의해서 비교될 수 있으므로, 데이터의 유효성의 평가를 지연시킬 수 있다. 다른 한편으로, 실행 유닛들과 캐시 사이에 비교기를 배치하면, 실행 유닛과 캐시 사이의 데이터 전달은 신호의 높은 전기적 부하에 의해서 지연된다.
본 발명의 목적은, 데이터들의 비교가 캐시 내의 저장과 동시에 그리고, 메인 메모리 내의 재기록 시점과 무관하게 일어날 수 있도록 하는 것이다. 이 경우 적어도 하나의 실행 유닛과 캐시 사이의 데이터 전달은 높은 전기적 버스 부하에 의해서 악화되어서는 안된다.
하나 또는 복수의 실행 유닛들을 갖는(싱글 코어 또는 멀티 코어) 공지된 프로세서 시스템에서, 듀얼 포트 캐시-메모리의 구현은 하드웨어 비용의 증가 때문에 분명하지 않다. 복수의 실행 유닛들(코어, 프로세서)이 가변의 방식 즉, 다양한 작동 모드들 내에서 서로 상호 작용하는(예컨대 DE 103 32 700 A1호에 설명) 멀티 프로세서 아키텍쳐의 경우, 듀얼 포트 캐시 아키텍쳐가 바람직하게 사용될 수 있다. 복수의 캐시를 갖는 멀티 프로세서 시스템들에 대한 실질적인 장점은, 멀티 프로세서 시스템의 작동 모드들 사이의 전환 시 캐시의 컨텐츠가 삭제되거나 무효화되지 않아도 되는 것인데, 이는 데이터들이 한 번만 저장되므로 전환 후에도 일관되게 유지되기 때문이다.
따라서 장점들은, 적어도 실행 유닛을 위해 캐시에 직접 연결됨으로써, 높은 데이터율을 갖는 고속 영역에서 데이터 전달이 방해 받지 않고 실행되며 그럼에도 캐시 내에 데이터들이 저장된 직후 지연되지 않는 비교가 실행될 수 있는 실시일 수 있다. 이를 위해, 데이터들이 비교를 위해 재판독된 캐시의 제2 포트가 사용된다.
복수의 작동 모드들을 갖는 하나의 멀티 프로세서 시스템 내의 듀얼 포트 캐시는 데이터/명령이 캐시로 여러 번 호출되지 않아도 되고 경우에 따라 관리되지 않아도 되는 장점을 갖는다. 또한 데이터 또는 명령이 복수의 실행 유닛들에 의해서 사용될 때에도, 데이터/명령 당 단 하나의 메모리 위치만이 하드웨어적으로 제공되어야 한다. 또한 멀티 프로세서 시스템의 다양한 작동 모드들의 경우 데이터들은 어떤 모드에서 처리되고 또는 호출되었는지에 대해서는 구별되지 않아도 된다. 작동 모드의 교체 시 캐시가 삭제되지 않아도 되는 것이 특히 장점이다. 듀얼 포트 캐시의 경우 2개의 프로세서들은 동일한 데이터/명령에 대해 동시에 판독하여 액세스할 수 있다. 또한 "라이트 쓰루(write through)" 모드 대신에, "라이트 백(write back)" 모드가 캐시를 위해서 사용될 수 있는 것이 특히 장점이다. 상기 방법에 의해, (메인-) 메모리는 꾸준히 업데이트되지 않아도 되며, 캐시 내에 데이터들이 오버라이트될 때에서야 업데이트된다. 이 경우 2개의 프로세서들을 위한 캐시가 동일한 소스로부터의 데이터들을 제공하고 그리고, 메인 메모리 내의 재기록과 무관하게 비교가 실행되기 때문에 데이터들의 비교 시점도 문제되지 않으므로 일관성의 문제가 존재하지 않는다.
본 발명에 따라 제시된 바와 같이, 비대칭 듀얼 포트 캐시 구조는 특히 캐시 로의 데이터들의 기록이 적어도 하나의 실행 유닛을 위해서 저지되지 않지만, 다른 한편으로는 상기 데이터들이 캐시로부터 메인-메모리에 기록될 때까지 비교로써 관리되지 않아도 되는 장점을 갖는다. 따라서 캐시 내의 블록이 다른 하나의 블록으로 대체될 때에야("라이트 백" 모드), 데이터들이 블록별로 메인 메모리 내에 재기록될 수 있다.
캐시와 메인 메모리 사이의 버스 상에서의 데이터율은, 캐시 내의 하나의 데이터의 각각의 업데이트를 위해서, 메인 메모리 내의 상응하는 데이터가 동시에 변경되는 "라이트 백" 모드에 비해 낮아진다. 여기서 업데이트는 블록별로 실행되는 것이 아니라, 변경된 데이터만이 메인 메모리 내에 병렬로 전송된다. 그럼에도, 메인 메모리에 대한 버스 부하가 더 높아지는데, 이는 상기 버스가 각각의 기록 명령을 받기 때문이다.
"라이트 백" 모드의 경우, 실행 유닛들은 데이터가 제공될 수 있는 한, 캐시와만 상호 작용한다. 캐시 내에서 실행 유닛의 기록 시, 이를 위해서는, 블록의 데이터들이 더 이상 메인 메모리와 일치하지 않는 것을 나타내는 더티-비트가 세팅된다. 해당 실행 유닛들이 공통의 캐시와 상호 작용하는 한, 메인 메모리 내의 데이터는 업데이트되지 않아도 되는데, 이는 관련 블록이 캐시 내에 유지되는 경우에 한해서이다. 또한 복수의 데이터 워드들도, 실행 유닛들의 데이터 일관성을 해치지 않으면서, 여러번 변경될 수 있다.
데이터들 및/또는 명령들을 위한 적어도 2개의 실행 유닛들 및 적어도 하나의 제1 메모리 또는 메모리 영역을 갖는 컴퓨터 시스템 내에 데이터들 및/또는 명령들을 저장하기 위한 장치가 바람직하며, 이 경우 전환 수단이 제공되어 적어도 2개의 작동 모드들 사이가 전환되고, 비교 수단이 제공되어 제1 작동 모드는 비교 모드에, 제2 작동 모드는 실행 모드에 상응한다. 상기 장치 내에 제2 메모리 또는 메모리 영역이 포함되고, 이 경우 상기 장치는 캐시 메모리 시스템으로서 형성되며, 적어도 2개의 분리된 포트를 구비한다. 하나의 포트는 제1 실행 유닛에 직접 연결되고, 제2 포트와 적어도 제2 실행 유닛 사이에 제3 장치가 포함되며, 이는 제2 메모리 또는 메모리 영역에 대한 제2 실행 유닛의 액세스가 상기 제3 장치에 의해서 실행되도록 구성된다.
또한 바람직하게 상기 유형의 장치는, 전환 수단 및/또는 비교 수단 내에 적어도 하나의 메모리 수단이 제공되고, 적어도 하나의 비트를 통해서 메모리 수단으로의 전환이 실행되는 것을 특징으로 한다.
또한 바람직하게 상기 유형의 장치는, 컴퓨터 시스템에 대한 적어도 하나의 외부 또는 내부 신호에 의해서 전환이 실행되는 것을 특징으로 한다.
또한 바람직하게 상기 유형의 장치는, 실행 모드 내에서 직접 연결된 실행 유닛의 제3 장치가 제2 메모리 장치에 대한 판독 액세스 및 기록 액세스를 연결된 포트를 통해서 보장하는 것을 특징으로 한다.
또한 바람직하게 상기 유형의 장치는, 비교에 연관된 데이터들이 제1 실행 유닛으로부터 각각 저장될 시에 상기 메모리의 제1 포트에 의해서 증분되거나 감소되는 적어도 하나의 카운터가 캐시 메모리 시스템 내에 제공되는 것을 특징으로 한다.
또한 바람직하게 상기 유형의 장치는, 상응하게 연결된 포트 상에 있는 비교 모드로의 전환 시 카운터가 카운터값을 출력하며 상기 값이 제3 유닛에 저장되는 것을 특징으로 한다.
또한 바람직하게 상기 유형의 장치는, 제2 카운터가 제3 장치에 제공되고, 제3 유닛의 제2 카운터를 세팅하기 위해서 카운터의 카운터값이 사용되는 것을 특징으로 한다.
바람직하게 데이터 및/또는 명령을 위한 적어도 2개의 실행 유닛들 및 적어도 하나의 제1 메모리 또는 메모리 영역을 갖는 컴퓨터 시스템 내에 데이터 및/또는 명령을 저장하기 위한 방법이 설명되며, 이 경우 전환 수단이 제공되어 적어도 2개의 작동 모드들 사이가 전환되고, 비교 수단이 제공되어 제1 작동 모드는 비교 모드에, 제2 작동 모드는 실행 모드에 상응하며, 이 경우 캐시 메모리 시스템 내에 포함되고 적어도 2개의 분리된 포트를 구비한 제2 메모리 또는 메모리 영역이 제공되며, 제1 실행 유닛은 제1 포트를 통해서 제2 메모리 또는 메모리 영역에 직접 액세스하고, 제2 실행 유닛은 제3 장치를 통해서 제2 메모리 또는 메모리 영역에 액세스하는 것을 특징으로 한다.
바람직하게, 제3 장치가, 연결된 실행 유닛으로부터 데이터 및/또는 신호가 저장될 수 있는 메모리 수단을 포함하는 것을 특징으로 하는 방법이 설명되며, 이 경우 제3 유닛은 언급한 실행 유닛의 상태와 무관하게 데이터를 제2 메모리 또는 메모리 영역으로 교체할 수 있다.
바람직하게, 상기 제3 장치가 제2 처리 장치로부터 데이터 및/또는 어드레스 및/또는 제어 신호를 받고, 제2 메모리 또는 메모리 영역의 상응하는 데이터에 대해서 판독 또는 기록 액세스하는 것을 특징으로 하는 방법이 설명된다.
바람직하게, 캐시 메모리 시스템이 데이터들의 존재에 대해서 결정하며, 존재하지 않을 경우 신호를 제3 장치에 송신하는 것을 특징으로 하는 방법이 설명된다.
바람직하게, 제3 유닛 내의 데이터 및/또는 명령의 유효성이 조사되고 유효성이 있는 경우 계속 전달되는 것을 특징으로 하는 방법이 설명된다.
바람직하게, 데이터 및/또는 명령을 저장한 추가 정보에 의해서 유효성이 조사되는 것을 특징으로 하는 방법이 설명된다.
바람직하게, 비교 모드로의 전환에 의해서 동기화 신호가 해당 실행 유닛에 발송되는 것을 특징으로 하는 방법이 설명된다.
바람직하게, 비교될 데이터들의 비교 및 편차의 경우 에러가 신호화되는 것을 특징으로 하는 방법이 설명된다.
바람직하게, 보팅될 데이터들로부터 적어도 하나의 데이터의 보팅 및 편차의 경우 상태 및/또는 에러가 신호화되는 것을 특징으로 하는 방법이 설명된다.
바람직하게, 캐시 메모리 시스템 내에 카운터가 제공되며, 비교 모드로의 전환 시 상기 카운터가 상응하게 접속된 포트에 카운터값을 출력하며 카운터값이 제3 유닛에 저장되는 것을 특징으로 하는 방법이 설명된다.
바람직하게, 제2 카운터가 제3 장치에 제공되며, 제3 유닛의 제2 카운터를 세팅하기 위해서 카운터의 카운터값이 사용되는 것을 특징으로 하는 방법이 설명된다.
바람직하게, 캐시 메모리 시스템 내에 제공된 카운터가 하나의 포트에 할당되며, 각각의 포트에 접속된 처리 장치 내에서 비교 모드가 스위치온될 경우 고정된 값으로 세팅되는 것을 특징으로 하는 방법이 설명된다.
추가의 장점들 및 바람직한 실시예들은 청구범위의 특징들 및 상세한 설명으로부터 제시된다.
도1은 데이터들 및/또는 명령들을 위한 듀얼 포트 캐시를 도시한 도면이다.
도2는 듀얼 포트 캐시를 상세하게 도시한 도면이다.
도3은 214 또는 224의 변환 테이블을 도시한 도면이다.
도4는 서로 무관하게 작동될 수 있으며 2개의 별도의 선택-신호들에 의해서 각각의 포트로부터 액세스되어 제어될 수 있는 2개의 부분 영역들로의, dpRAM의 분할을 도시한 도면이다.
테이블1은 디코딩을 이용한, 2 어드레스 비트로부터 4 선택-신호들의 발생을 설명한 테이블이다.
도5는 포트 전환을 이용한 싱글 포트 RAM에 의한 듀얼 포트 RAM-영역의 구현을 도시한 도면이다.
도6은 병렬 처리될 수 있는 복수의 부분-어드레스 영역들 1...q 내의 p 포트를 갖는 멀티플 포트 RAM의 배분을 도시한 도면이다.
도7은 포트 전환을 이용한 싱글 포트 RAM에 의한 멀티 포트 RAM-영역의 구현을 도시한 도면이다.
도8은 시스템 상태 또는 구성에 따라, 포트를 위한 RAM-영역들의 분할을 도시한 도면이다.
테이블2는 시스템 상태 신호 또는 구성 신호의 고려 하에 하나의 어드레스 비트로부터 각각의 포트에 각각 2개의 선택-신호들이 발생하는 것을 설명한 테이블이다.
테이블3은 다른 실시예의 시스템 상태 신호 또는 구성 신호의 고려 하에 하나의 어드레스 비트로부터 각각의 포트에 각각 2개의 선택-신호들이 발생하는 것을 설명한 테이블이다.
도9는 상응하는 선택-신호들의 발생을 통한 시스템 상태 또는 구성에 따른 영역 내에서 포트 RAM의 분할을 도시한 도면이다.
도10은 다중 연관 액세스를 갖는 영역 내에서의 멀티 포트 RAM의 분할을 도시한 도면이다.
도B1은 듀얼 포트 캐시를 갖는 비대칭 DCSL 아키텍쳐의 기본 원리를 도시한 도면이다.
도B2는 2개의 실행 유닛들을 위한 전환 유닛 및 비교 유닛의 기본 원리를 도시한 도면이다.
도B3은 비활성 상태일 때 판독 요구 유닛(106)을 도시한 도면이다.
도B4는 비교 비트가 세팅되지 않을 경우, 전환 유닛 및 비교 유닛을 통한 실행 유닛의, 캐시가 없는 메모리에 대한 대체 액세스를 도시한 도면이다.
도B5는 비교 비트가 세팅되고 하나의 실행 유닛(B110)으로부터 데이터가 출력될 경우, 유닛을 통한 캐시에 대한 판독 요구를 도시한 도면이다.
테이블4는 캐시의 구조를 설명한 테이블이다.
테이블5는 컨트롤-비트의 가능한 구성을 설명한 테이블이다.
도B7은 싱글 포트 RAM을 통한 듀얼 포트 캐시 및 액세스 제어부를 도시한 도면이다.
도B8은 복수의 모드 및 멀티-포트 캐시 사이의 전환 가능성을 갖는 비대칭 데이터 처리 유닛의 기본 구조를 도시한 도면이다.
이하에서는 실행 유닛으로서 프로세서, 코어, CPU 및, FPU(플로팅 포인트 유닛), DSP(디지털 신호 프로세서), 코프로세서 또는 ALU(산술 논리 유닛)이 표현될 수 있다.
도1에 따른 듀얼 포트 캐시(200)는 실질적인 부품인 듀얼 포트 RAM(dpRAM, 230)으로 구성된다. 상기 dpRAM(230)는 바람직하게는, 서로 독립적인 2개의 어드레스 디코더들, 2개의 데이터 기록-단/판독-단 및, 단순한 메모리 셀-매트릭스와 상이하게 복사된 워드 라인 및 비트 라인들을 가지므로, 적어도 dpRAM의 임의의 메모리 셀을 위한 판독 과정은 2개의 포트들에 의해서 동시에 실행될 수 있다.(그러나 모든 액세스 요소들이 복사되지는 않음으로써 dpRAM이 제한적으로만 2개의 포트들에 의해서 동시에 액세스 가능할 때에도 상기 장치는 유효하다.) 이로써 듀얼 포트 RAM은, 상기 포트의 판독 또는 기록을 위한 요구 조건을 처리하기 위해 얼마나 많은 시간이 요구되는지 즉, 경우에 따라 다른 포트의 요구 조건들과 상호 작용하는, 요구된 판독 또는 기록 과정이 종결될 때까지 얼마나 걸리는지에 대한 고려 없이 서로 독립적으로 사용될 수 있는 2개의 포트(231, 232)에 의해 제공되는 RAM을 의미한다. dpRAM의 2개의 포트들은 신호들(201 또는 202)에 의해서 장치들(210 또는 220)에 연결되며, 장치들은 실행 유닛들(215, 225)과 무관하게, 도착한 어드레스들, 데이터들 및 제어 신호들(211 또는 221)의 조사를 실행하고 선택적으로 어드레스들을 변환한다. 데이터들은 포트에 따른 판독 시 201을 거쳐 210을 통해211로 또는, 202를 거쳐 220을 통해 221로 출력되거나, 반대 방향으로 실행 유닛들 로부터 캐시-메모리 내에 기록된다. dpRAM의 2개의 포트들은 신호들(201, 202)을 통해서 버스 액세스 제어부(240)에 연결되며, 이는 여기에 도시되지 않은 (메인)-메모리 또는 다음 번 단의 캐시에 대한 연결을 형성한다.
도2에는 유닛들(210, 220 및 250)이 상세하게 설명되어 있다. 듀얼 포트 캐시에 대한 액세스 시, 신호들(211, 221) 내에 포함된 실행 유닛들(215, 225)의 어드레스들(212 및 222)은 장치(250)의 어드레스 비교기(251) 내에서 서로 비교되며, 211 및 221 내에 마찬가지로 전달된 제어 신호들과 함께 호환성에 대해 조사된다. 충돌이 있을 경우, 신호들(213 또는 223) 내에 포함된 제어 신호들에 의해 듀얼 포트 RAM(230)에 대한 액세스가 방지된다. 이와 같은 충돌은, 2개의 실행 유닛들이 동일한 어드레스 상에서 기록하려 할 때나 하나의 실행 유닛이 기록하려는 반면 동일한 어드레스의 다른 실행 유닛은 판독하려는 것일 수 있다.
캐시는 부분적으로 또는 완전히 연관되게 실행될 수 있으며 즉, 데이터들은 캐시의 복수의 지점 또는 임의의 지점에 저장될 수 있다. dpRAM에 대한 액세스가 가능하도록, 우선 소정의 데이터/명령에 액세스할 수 있는 어드레스가 검출되어야 한다. 어드레싱 모드에 따라 하나 또는 복수의 블록 어드레스들이 선택되며, 여기서 캐시 내의 데이터가 구해진다. 상기 모든 블록들은 판독되며 캐시 내의 데이터들을 저장하는 식별부는 인덱스-어드레스(오리지날-어드레스의 부분)와 비교된다. 일치할 경우 그리고, 마찬가지로 캐시 내의 각각의 블록에 저장된 컨트롤 비트(예컨대 유효-비트, 더티-비트 및 프로세스-ID)를 이용한 유효성에 대한 추가 조사 이후, 하나의 캐시는 유효성을 나타내는 히트 신호를 발생시킨다.
어드레스 변환을 위해, 바람직하게는 도2에 도시된 메모리 유닛(214 또는 224)(레지스터 또는 RAM, 또한 TAG-RAM으로서 표현)에 배치되며 유닛들(210 또는 220)에 위치한 테이블이 사용된다. 상기 테이블은, 실제 어드레스를 물리적 어드레스로 변환하며 또한 직접 매핑된 캐시의 경우에도 정확한(명백한) 캐시-액세스 어드레스를 제공하는 어드레스 변환 유닛이고; 다중 연관 캐시 기관의 경우 복수의 블록들이 반응하며 완전 연관 캐시인 경우 캐시의 모든 블록들이 판독 및 비교되어야 한다. 이와 같은 유형의 어드레스 변환 유닛은 예컨대 US 특허 4669043호에 설명되어 있다.
예컨대, 하나의 블록의 각각의 어드레스 또는 어드레스 그룹에 대한, 앞서 언급한 테이블 내에는 dpRAM의 액세스 어드레스가 저장된다. 도3에 도시된 어드레싱 유형에서, 캐시의 블록 크기에 상응하게, 테이블을 위한 상위 어드레스 비트(인덱스-어드레스)가 어드레스로서 사용되며 컨텐츠는 dpRAM(도3)의 액세스 어드레스이다. 블록은, 캐시 미스의 경우(캐시 내에서 요구된 데이터들의 에러) 메모리로부터 캐시 내로 공통으로 호출된 바이트의 수이며, 이는 상기 영역으로부터 어드레스 상에 판독 액세스될 때이다. 상기 블록 전달은 복수의 부분들로 하드웨어가 구현됨에 따라 시간적으로 연달아 발생할 수 있거나 동시에 실행될 수 있다.
캐시에 대한 바이트 또는 워드 방식의 액세스를 위해, 블록에 대한 상위 어드레스 비트는 테이블과 함께 변환되며, 나머지(낮은 값의) 어드레스 비트는 변경 없이 전달된다.
기록 과정을 위해, 예컨대 2개의 포트들 중 하나에 더 높은 우선 순위가 주 어지고 즉, 2개의 포트들이 동시에 기록되는 것이 방지된다. 선호되는 포트가 기록 연산을 실행한 때에야, 다른 포트가 기록할 수 있으며; 경우에 따라 단 하나의 프로세서만이 상응하게 할당된 메모리 영역에 대한 기록 권한을 갖는다. 마찬가지로 메모리 셀 상에서의 임의의 기록 연산 시, 판독 요구를 갖는 프로세서가, 기록 연산이 종료될 때까지 정지됨으로써, 동일한 메모리 셀이 각각 다른 포트에 의해서 판독되거나 판독 연산이 지연되는 것이 방지될 수 있다. 이를 위해 도2에 도시된 모든 어드레스 비트(251)의 어드레스 비교기에는 상응하는 중재자(arbiter)(252)가 제공되며, 이는 프로세서들의 제어 신호들을 평가하고, 순서를 제어하는 출력 신호들(213, 223)을 형성한다. 출력 신호들(213, 223)은 바람직한 실시예에서, 각각 3개의 신호 상태들을 취할 수 있다: 선택, 대기(wait), 동등(equal). 명령어 캐시를 위해서는 기록 액세스는 필요하지 않다; 이 경우 신호 상태 "동등"는 출력 신호(213, 223)을 위해서 충분하다.
캐시 미스의 경우, 데이터 또는 명령은 버스 시스템에 의해서 프로그램 메모리 또는 데이터 메모리로부터 호출되어야 한다. 입중계 데이터들은 실행 유닛에 전달되며 동시에 식별부 및 컨트롤 비트와 함께 캐시 내에 기록된다. 여기서도, 히트가 제공되지 않지만, 신호 동등(213, 223의 성분 또는 상태)이 어드레스 비교기에 의해서 나타날 때, 어드레스 비교기는 메모리로부터 데이터를 다시 새롭게 호출하는 것을 방지한다. 신호 동등은 양측에서 판독될 경우 상위 어드레스 비트에 의해서만 형성되는데, 이는 전체 블록이 항상 메모리로부터 호출되기 때문이다. 블록이 캐시 내에 저장될 때에야, 대기하던 실행 유닛이 캐시에 액세스할 수 있다.
바람직한 다른 실시예에서, 2개의 분리된 듀얼 포트 캐시가 데이터들 및 명령들을 위해서 제공되며, 후자의 경우 일반적으로 기록 과정들이 제공되지 않는다. 이 경우 어드레스-비교기는 항상 상위 어드레스 비트의 동등성에 대해서만 조사하며, 상응하는 제어 신호 "동등"을 신호들(213 또는 223)에 제공한다.
다른 실시예에서, 동시 액세스를 가능하게 하는 다양한 어드레스 영역들 내에, 요구된 데이터들이 존재하면, 2개의 포트들에 의한 동시 판독-액세스는 제약 없이 작동된다. 따라서, 메모리 내의 모든 액세스-메카니즘이 복사되지 않아도 되기 때문에, 하드웨어-구현 시 비용이 절약될 수 있다. 예컨대 캐시는 서로 독립적으로 작동될 수 있는 복수의 부분 메모리 영역 내에서 구현될 수 있다. 각각의 부분 메모리는 선택-신호를 통해서 하나의 포트의 처리만을 가능하게 한다. 도4에는 2개의 부분 메모리 영역들(235, 236)을 포함하는 메모리(230)가 도시된다. 여기에 도시된 실시예에서, Ai=0의 경우 E0=1 및 E1=0이 적용되고 Ai=1의 경우 E0=0 및 E1=1이 적용되도록, 하나의 어드레스 비트(Ai)로부터 2개의 선택-신호들(E0 및 E1)이 형성된다. 신호들(233, 234)에는 2개의 선택-신호들 및 낮은 값의 어드레스 비트(Ai-l ...A0)가 포함된다.
4개의 부분 메모리들을 갖는 다른 실시예의 경우, 4 선택-신호들이 2개의 어드레스 비트로부터 발생될 수 있는데, 이는 각각의 부분 메모리가 명백히 하나의 특정 어드레스 영역을 사용하기 때문이다. 따라서 테이블 1에 따른 2진 웨이트에 상응하게 4개의 선택-신호들(E0 내지 E3)이 발생됨으로써, 예컨대 2 어드레스 비트(Ai+1 및 Ai)로써 4개의 부분 메모리 영역들이 응답할 수 있다.
도4에 도시된 부분 메모리(235, 236)를 위해, 도5에는 하나의 실행 유닛이 도시된다. 여기서 260으로 도시된 부분 메모리는 특수한 실시예에서 싱글 포트 RAM(280)으로서 실시되며, 그 어드레스들, 데이터들 및 제어 신호들은 요구 조건에 따라 전환된다. 상기 전환은, 상응하는 포트로부터의 선택-신호들 및 다른 제어 신호들(2901 또는 2902)(예컨대 판독, 기록)에 따라, 멀티플렉서(275)를 이용한 제어 회로(270)에 의해 실행된다. 상기 신호들은 데이터들 및 어드레스들과 함께 신호들(233 또는 234) 내에 포함되고, 5281 또는 5282를 통해 멀티플렉서(275)에 안내되며, 멀티플렉서는 제어 회로(270)의 결정에 따라 출력 신호(2701)에 상응하게 5281 또는 5282를 신호들(2801)에 연결한다. 상기 실시예에서, 일반성의 제약 없이 캐시의 직접적 어드레싱에 의해서 출력된다(직접-매핑). 다중-연관 캐시-기관이 제공되면, 유닛(275)에서는 유효성에 대한 비교가 실행되고 캐시-히트 신호가 포트에 전달되어야 하거나, 모든 데이터들은 포트(5331) 및 신호(233)를 통해서 231에 또는, 포트(5332) 및 신호(234)를 통해서 232에 전달되며, 여기서 유효성이 조사된다.
제어 회로는 2801 및, 이로써 싱글 포트 RAM(280)에 대한 신호들(5281 또는 5282)의 전달을 실행할 수 있으며, 또한 데이터들과 다른 신호들을 280으로부터 반대 방향으로 전달할 수 있다. 이는 유효한 선택-신호 및 신호들(233, 234)에 따라 및/또는, 포트가 상기 신호들을 통해 판독-연산 또는 기록-연산을 메모리(280)로써 일으키는 순서에 따라 발생한다. 신호들(233, 234)에서 판독 신호 또는 기록 신호가 동시에 활성화되면, 먼저 규정된 포트가 우선 사용된다. 상기 선호 포트는 판독 신호 또는 기록 신호가 활성화되지 않더라도, 2801에 연결되어 유지된다. 대안적으로, 선호 포트는 바람직하게는 프로세서 시스템의 상태 정보에 따라 프로세서 시스템에 의해서 동역학적으로도 정해질 수 있다.
싱글 포트 RAM을 갖는 상기 장치는 병렬 액세스 가능성을 갖는 듀얼 포트 RAM에 비해 더 저렴하지만, 동시에 부분 메모리(판독)에 액세스될 때, 적어도 하나의 실행 유닛의 처리가 지연된다. 적용예에 따라, 상이한 실행 유닛들의 명령 싸이클 및 데이터 액세스의 구성과 함께 동일한 부분-RAM-영역들에 대한 동시 액세스가 가능한 적게 발생하도록, RAM-부분 영역들의 다양한 분할을 실행하는 것이 가능하다. 이러한 배치는 또한 2개 이상의 프로세서들에 의한 액세스에 확대될 수 있다: 어드레스들, 데이터들 및 제어 신호들의 전환이 복수의 멀티플렉서에 의해서 단계적으로 연속 제공될 때(도6, 도7), 멀티-포트 RAM도 동일한 방식으로 구현될 수 있다.
상기 유형의 멀티 포트 RAM(290)은 도6에 도시된다. 여기서 포트-입력 신호들(261, 262, ...267)은 디코딩 장치(331, 332, ...337)에서 신호들(291, 292, ...297)로 디코딩된다. 디코딩은 281, 282 및 288 내의 개별 RAM들에 대한 액세스를 위한 선택-신호들을 발생시킨다. 도7에는 부분 메모리(28x)(281 ... 288)를 위한 실시예가 더 자세히 도시된다. 여기서 제어 장치들(370)의 제1 단계에서는, 선 택-신호들 및 제어 신호들(3902, 3902, ... 3908)이 제어 신호들(291, 292 ... 298)로부터 출력 신호들(3701, ... 3707)로 처리된다. 상기 출력 신호들은 신호값에 따라 버스들(381 또는 382, 387 또는 388)을 신호들(481 ... 488)에 연결시키는 각각 하나의 멀티플렉스(375)를 제어한다. 다른 단계에서, 유사한 제어 장치(370)와 멀티플렉서(375)는 마지막 단계에서 신호들(5901, 5902)이 제어 장치를 위해서 사용될 때까지 상응하게 접속된다. 그 후 출력 신호(5701)는, 신호 포트 RAM에 연결된 581 또는 582를 681에 연결시킨다.
도5의 멀티플렉서(275)에 상반되게, 도7의 멀티플렉서(375)는 어드레스 신호들, 데이터 신호들 및 제어 신호들 외에도, 381, 382 ... 388 내에 포함된 다음 번 단계의 선택-신호들도 연결한다. 또한 375 내에는, 다중-연관 어드레싱 유형일 때 부분 영역들로부터 판독된 데이터들의 유효성을 검출하는 비교 장치가 포함될 수 있다.
다른 바람직한 실시예에서, 다양한 실행 유닛들에 대한 RAM-영역들의 접속은 하나의 또는 복수의 시스템 상태들 또는 구성들에 따라 실행될 수 있다. 도8에는 구성 가능한 듀얼 포트 캐시에 대한 예시가 도시된다. 시스템 신호 또는 구성 신호(1000)는 입력 신호들의 디코딩 시 2개의 포트들 각각을 위해서 사용된다. 테이블2는 여기서 M으로 표현된 상기 신호(1000)에 따른 디코딩의 변경 가능성을 나타낸다. M=0이면, 예컨대 2개의 포트가 전체 캐시에 대한 액세스를 갖는 비교 모드가 제공된다. 그러나 M=1이면(예컨대 실행-모드), 어떤 포트는 캐시의 절반에 대해 액세스되지만, 어떤 포트는 제약 없이(다른 포트에서의 활성화의 영향 없이) 상 기 영역에 액세스할 수 있다. 상기 모드에서 어드레스 비트(Ai)는 캐시(직접-매핑된 모드)를 어드레싱하기 위해 사용되는 것이 아니라, 상기 비트에서만 어드레싱이 구별되는 데이터들이 캐시 내의 동일한 지점에 저장된다. 캐시-컨텐츠가 판독될 때에서야, 식별부에 의해, 이것이 구해진 데이터인지의 여부와 캐시-히트 신호가 상응하게 발생되는지의 여부가 검출될 수 있다. 상응하는 비교기가 어디에 배치되는지에 따라, 데이터들은 식별부 및 컨트롤 비트를 포함하여, 신호들(291, 292, ...297)을 통해서 포트(331, 332, ...337) 및 계속해서 신호들(261, 262, ...267)에 출력된다. 마찬가지로 실행-모드(M=1)일 때 포트(1)에 대해서만, 전체 캐시에 대한 액세스를 허용할 수 있다. 이러한 실시예는 테이블3에 도시된다. 사용자는 복수의 구성 신호들을 통해서도 캐시의 임의의 다른 분할을 실행할 수 있다. 이는 더 큰 캐시-영역에서 더 높은 히트-율을 한 번 허용하며 이로써 메인 메모리로부터의 데이터들을 호출할 필요성을 줄인다. 다른 한편으로, 다양한 실행 유닛들은 다양한 포트들에 의해서 가능한 한, 서로 독립적인 캐시-영역들에만 액세스되는 것을 방지하지 않는다. 이는, 적용예에 따라 다른 구성의 가능성이 있을 때, 상기 조건들이 사용을 위해 제공된 프로그램들에 따르는 것이 바람직하기 때문이다. 다른 한편으로, 시스템 상태(비교-모드/실행-모드)의 교체 시에 바로, 자동적으로 캐시는 모드 신호(1000)로 전환될 수 있다.
모드 신호 또는 구성 신호에 따른 포트의 전환 가능성은 도9에서 멀티-포트 캐시(209)로 확대된다. 이 경우 331, 332, ... 337은 상기 모드 신호 또는 구성 신호를 이용해서 다양한 부분-RAM-영역들(281, 282, ...288)의 접속을 제어하는 포트이다. 상기 제어는 상응하게, 상기 포트 내로 발생된 선택-신호들에 의해서 보장되며, 선택 신호들은 신호들(291, 292, ...297) 내에 포함된다.
각각의 부분 메모리(281, 282, ...288)로부터 데이터들이 식별부 및 컨트롤 비트와 함께 재판독되는 다중-연관 캐시가 제공될 때, 다른 실시예가 도10에 도시된다. 비교 장치들(2811, 2812, ...2817, 2821, 2822, ...2827, ...2881, 2882,...2887)에서는, 유효성이 조사되며 신호들(2910, 2920, ...2970)에서의 데이터에 따라 유효성 신호들과 함께 전달된다. 모드 신호 또는 구성 신호에 의한 전환은 이 경우 선택적으로, 도9에 이미 도시되고 설명된 바와 동일하게 가능하다. 포트들(3310, 3320, ...3370)에서, 유효성 신호들과, 경우에 따라 모드 신호들 및 구성 신호들(1000)이 평가되며, 이에 상응하게 유효한 데이터가 캐시 히트 신호 또는 캐시 미스 신호에 의해 신호들(2610, 2620, ...2670)에 전달된다.
도B1에는, 2개의 실행 유닛들을 갖는 비대칭 시스템 구조를 위해 듀얼 포트 캐시를 사용하는 구조가 도시된다. 이 경우 B110 및 B111은 그 데이터/어드레스 신호들 및 제어 신호들을 갖는 2개의 실행 유닛들이다. B100은 전환 유닛 및 비교 유닛이다(UVE).
상기 전환 유닛 및 비교 유닛의, 2개의 실행 유닛들(B10, B11)에 연결된 적용을 위한 그 기본 기능은 도B2에 도시된다. 데이터들, 제어 신호들 및 어드레스 신호들(B20 또는 B21)과 같이, 실행 유닛들(B10, B11)의 다양한 출력 신호들은 전환 유닛에 연결된다.
더욱이 적어도 하나의 동기화 신호 즉, 본 발명에 따른 장치의 구성에서는, 비교 유닛들의 각각 하나에 연결된 2개의 출력 신호들(B40, B41)이 있다.
전환 유닛은, 비교 유닛의 모드를 전환하는 2진 수(비트)(B16)를 위한 적어도 하나의 메모리 요소를 갖는 적어도 하나의 제어 레지스터(B15)를 포함한다. 상기 비트(B16)는 2개의 값들 0, 1을 취할 수 있으며, 실행 유닛들의 신호들(B20 또는 B21)을 통해 또는 전환 유닛의 내부 프로세스를 통해 세팅되거나 리세팅될 수 있다.
영구적인 비교 모드가 조정되어야 할 때, 전환 유닛 및, 이로써 제어 레지스터(B15) 및, 이로써 전환 비트(B16)도 생략될 수 있다. 전환 유닛 및 비교 유닛은 영구적 비교 유닛을 위한 것이며, 신호(B101)은 일정하게 1이다. 도B3 및 도B4에 도시된 상태들은 이로써 생략된다. 물론, 비트(B16)가 세팅됨으로써 신호(B101)=1일 때, 후속 관찰이 적용된다.
상기 비트(B16)가 값 1로 세팅되면, 전환 유닛은 비교 모드로 작동한다. 상기 모드에서 B20으로부터의 모든 입중계 데이터들은, 데이터들의 유효성과 상기 데이터들을 위해 제공된 비교를 신호화하는 신호들(B20, B21)로부터의 제어 신호들 및/또는 어드레스 신호들의, 사전 설정 가능한 특정의 비교-조건들이 충족되는 한, B21으로부터의 데이터 신호들과 비교된다.
2개의 신호들(B20, B21)에서 상기 비교 조건들이 동시에 충족되면, 상기 신호들로부터 데이터들이 직접 비교되고, 불일치할 경우 에러 신호(B17)가 세팅된다. 신호들(B20 또는 B21)로부터의 비교 조건만이 충족되면, 상응하는 동기화 신호(B40 또는 B41)가 세팅된다. 상기 신호는, 상응하는 실행 유닛(B10 또는 B11)에서 처리를 정지시킨다. 이로써 이제까지 서로 비교될 수 없었던 상응하는 신호들의 전달이 방지된다. 신호(B40 또는 B41)는, 각각의 다른 실행 유닛(B21 또는 B20)의 상응하는 비교 조건이 충족될 때까지, 세팅되어 지속된다. 이 경우 비교가 실시되며 상응하는 동기화 신호가 리세팅된다.
비교될 데이터들이 2개의 실행 유닛들을 통해서, 설명한 바와 같이 비동시성으로 제공될 때, 비교를 보장하기 위해서는, 상응하는 동기화 신호(B40 또는 B41)가 리세팅될 때까지, 상응하는 실행 유닛의 데이터들 및 비교-조건들이 상응하는 값으로 유지되거나, 먼저 제공된 데이터들이 비교를 위해서 전환 유닛 내에 저장되는 것이 요구된다.
어떤 실행 유닛이 먼저 데이터들을 제공하는지에 따라, 상기 실행 유닛은, 다른 실행 유닛이 상응하는 비교 데이터들을 제공할 때까지 그 프로그램 또는 그 프로세스의 계속된 처리에 의해 대기한다.
도B2에 따른 전환 유닛의 특수한 실시예에서, 관련 실행 유닛이 다른 실행 유닛보다 먼저 비교 데이터들을 제공하지 않을 때마다, 신호들(B40 또는 B41) 중 하나가 생략될 수 있다. 비트(B16)가 세팅되지 않으면, 동기화 신호들(B40, B41) 및 에러 신호(B17)는 항상 값 0으로 세팅된다. 비교 또한 발생하지 않으며 2개의 실행 유닛들은 실행 모드 내에서 서로 독립적으로 작동한다.
실행 모드 시, 도B1의 2개의 실행 유닛들은 프로그램, 프로그램 부분들 또는 프로그램 세그먼트들을 독립적으로 처리한다. 실행 유닛(B111)은 B121을 통해서 캐시(B105)에 액세스하며, 캐시는 항상 B161에 의해서 메인 메모리 또는 다른 메모리 장치들에 연결된다. 실행 유닛(B110)은 바람직하게는 장치(106)에 의해서(상기 모드에서 제어 신호(B101)를 통해 비활성화 접속) 마찬가지로 듀얼 포트 캐시에 액세스하며, 이를 위해 상기 캐시의 제2 포트를 사용한다(도B3 참조). 전환 유닛과 비교 유닛(UVE)(B100)은 비활성화이며 즉, 데이터들이 비교되지 않는다(B16 세팅되지 않음). 다른 실시예에서, 캐시를 통한 실행 유닛(B110)의 액세스를 위해서, 그러나 다른 하나의 실시예에서는 액세스도 B160을 통해서 메인 메모리에 직접 또는, 다른 메모리 장치들에 제공될 수 있다(도B4 참조). 그러나 상기 다른 실시예는 캐시 내의 데이터들이 더 이상 일관되지 않는 단점을 갖는다. 상응하는 블록은 이 경우, 처리 유닛(B110) 자체를 통해서 또는, 독자적으로 버스(B161)의 관찰을 통해서 검출된 캐시를 통해서, 캐시 내에 존재한 블록 내에 기록되는지의 여부가 유효-비트의 리세팅에 의해서 캐시 내에서 유효하지 않게 실행되어야 한다. 이러한 과정은 버스-스누핑으로서 표현된다. 이에 반해, 도B3의 다른 실시예는 적은 비용으로 인해 선호된다.
도B1의 구조의 비교 모드는 도B5에 상세하게 도시된다. UVE(B100) 내에서 B16의 세팅에 의해 상기 모드가 활성화되면, 동일한 프로그램의 처리에 의해 2개의 실행 유닛들이 시작되고, 상기 프로그램은 경우에 따라 2개의 실행 유닛들에서 다양하게 처리 즉, 상이한 알고리즘 및/또는 비교될 데이터들을 발생시키기 위한 명령을 사용한다. 실행 유닛(B110)은, 서로 비교되어야 하는 데이터들을 상응하는 식별부와 함께 전환 유닛 및 비교 유닛(UVE)에 발송한다.
상기 작용은, 제어 신호들을 판독 요구 유닛(B106) 내에 저장하며(예컨대 기록), 경우에 따라 추가의 식별부(상태 정보 또는 프로세스 정보, 처리 싸이클)를 메모리 요소(B1061) 내에 그리고, 연관된 어드레스를 메모리 요소(B1062)에 저장한다. 따라서 유닛(106)은 제어 유닛(B1064) 내의 B1061로부터 발생된 제어 신호들을 이용한 판독 과정(예컨대 판독), B1021 내의 식별부 및, B1062로부터 발송된 어드레스 신호들(B1022)을 듀얼 포트 캐시(B105)의 포트(2)에서 시작한다. 비교를 위한 캐시 내에서의 판독 과정의 경우 항상, 캐시에 직접 접속된 실행 유닛이 이미 데이터들을 캐시 내에 기록한 것이 가정된다. 이는, 상기 실행 유닛들이 비교 모드 내로의 접속을 통해, 프로그램의 처리에 시간적으로 상응하게 시작됨으로써 보장된다(동기화에 대한 다음 장 참조). 비교 모드 시 비교될 데이터들이 아직 캐시 내에 제공될 수 없는 경우(캐시 미스), 캐시는 상기 데이터들을 메인 메모리 내에 요구할 수 없으며, 캐시에 직접 연결된 실행 유닛으로부터 상기 데이터들이 기록되고 이로써 캐시 내에 제공될 때까지, 판독 과정을 반복해야 한다. 시간적 모니터링 또는 실패한 시도의 카운터는, 데이터들이 허용된 시간 범위 내에 있지 않거나 특정의 수의 시도로 실행되었을 경우, 에러 신호의 발생을 보장한다.
이에 대해 수신된 데이터값은 B1023을 통해서 B1063 내에 기록된다. 데이터들의 유효성은 수신된 제어 신호들(B1024) 내에 나타나며(캐시 히트 신호 및 유효-비트의 평가), 유효성의 경우 데이터들, 어드레스들 및 적합한 제어 신호들은 B1003, B1002 및 B1001을 통해서 비교를 위해 B100 내에 제공된다. 이 경우 판독 요구 유닛(B106)에서는 데이터들에 의해 캐시로부터 다시 제공된 식별부(컨트롤-비 트)가 실제 식별부와 비교된다. 식별부들이 일치하지 않은 경우, 캐시 내의 동일한 어드레스에서 판독 과정이 새롭게 시작된다. 데이터들은 유효성의 식별부일 때에야, 경우에 따라서는 추가의 식별부로서도 사용될 수 있는 어드레스들과 함께, 적합한 제어 신호들(B1001)에 의해 비교를 위해서 릴리스된다. 비교값이 릴리스될 때까지(또는 신호들(B120)이 B100 내에 일시 저장되지 않을 때, 경우에 따라서는 비교가 종료될 때까지), 실행 유닛(B110)은 제어 신호(B140)(예컨대, 웨이트, 인터럽트)에 의해서 정지된다. 이로써 비교 데이터들이 B120으로부터 B120에 아직 인가될 수 있다. 신호들(B120)이 B100 내에 포함된 FIFO 내에 저장되면, 실행 유닛(B110)은 FIFO가 완전히 채워지지 않는 한, 정지될 필요가 없다. FIFO(선입, 선출)로서는 복수의 데이터 워드들을 저장할 수 있고 먼저 저장된 데이터들을 먼저 다시 출력하는 메모리 유닛이 언급된다.
2개의 실행 유닛들의 동기화는, 실행 유닛(B111)이 하나의 식별부(어드레스들 및 예컨대 유효-비트, 더티-비트, 프로세스-ID와 같은 추가의 컨트롤-비트)와 함께 비교 데이터들을 캐시 내에 저장하고, 비교 전에 유효성이 상응하게 조사됨으로써 실행될 수 있다. 이를 위해, 저장된 어드레스 데이터들과 유효-비트는 캐시-히트 신호의 재생을 위해서 사용된다. 더티-비트는 캐시 내의 해당 블록의 데이터들이 변경되었는지와 메인 메모리 내에 아직 재기록되지 않았는지의 여부만을 나타낸다. 프로세스-ID는 프로그램 처리의 식별을 의미하며, 이는 유효한 데이터들이 B111로부터 캐시 내로 각각 새로 기록됨으로써 변경된다. 따라서, 프로세스-ID가 예컨대 비교 모드의 시작에 의해, 공지된 값으로 세팅된 다음, 증분과 같이 공지된 방식으로 변경될 때, 데이터들의 업데이트가 조사될 수 있다.
테이블4는 캐시의 내부 구조를 도시한다. 각각의 행들은 하나의 데이터 블록에 상응한다.
어드레스-택은, 하나의 블록에 대한 액세스에 연관되며 실제 액세스 시 어드레스-인덱스와 비교되는 어드레스들의 부분이다. 일치할 경우 그리고, 유효성을 갖는 유효-비트(컨트롤-비트의 부분)의 경우, 캐시-히트 신호가 발생된다. 데이터 블록은 복수의 K바이트까지 수 바이트를 포함할 수 있다. 컨트롤 비트는 테이블5에 예시로서 도시된다.
예컨대 프로세스-ID의 증분을 보장하기 위해, 캐시(B105)에는 카운터(B1059)가 제공되며(도6), 이는 비교 모드(B101=1)가 시작됨으로써 신호들(B1021, B1022)을 통해 규정된 값으로 세팅된다. 상기 값은 제1 비교 사이클이 시작될 때, 예컨대 16진값 0x000일 수 있다. 상기 카운터는 B111로부터의 비교 연관 데이터들이 각각 기록됨으로써 연속적으로 증분될 수 있다. 비교 연관이라 함은, 비교를 위해서 상기 데이터들이 제공되는지의 여부가 어드레스들 및/또는 다른 제어 신호들에 의해서 사전 설정될 수 있음을 말한다.
캐시 내의 각각의 데이터와 함께, 카운터값이 프로세스-ID로서 저장되면, 데이터 상태는 명백히 식별된다. 유닛(B106) 내의 동일한 카운터(B1069)에 의해, 상응하는 데이터들이 캐시 내에 이미 제공되는지의 여부가 단순한 비교에 의해 결정될 수 있다. 이를 위해 상기 카운터(1069)는, B101이 활성화 됨으로써 바람직하게는 카운터(B1059)와 동일한 시작값으로 세팅되며, B110의 연관 데이터들의 각각의 기록 신호에 의해 증분된다. 판독된 블록 내의 프로세스-ID 비트가 B1069의 카운터 상태보다 더 높은 또는 그와 동일한 값을 가지면, 데이터들은 유효하다. 하나의 블록 내에서 상이한 데이터들 상에 여러 번 기록이 실행될 수 있기 때문에, 수치값이 더 높아질 수 있다. 카운터는 새로운 사이클의 시작에 의해 리세팅되지 않아도 된다. 아직 비교되지 않았던 데이터들이 하나의 새로운 사이클 내에서 오버라이트 되는 것은 방지되어야 한다.
카운터에 대한 추가의 실시예는, 다른 프로세스-ID 비트가 사이클을 식별하는 동안, 프로세스-ID의 일부분보다 더 낮은 값의 어드레스 비트(도3에 따른, 블록 어드레싱에 연관되지 않은 어드레스 비트 0, ..., k-1)의 저장이다. 워드 폭이 1 바이트보다 더 크면, 상응한 최저값의 비트가 이로부터 생략될 수 있다. 이로써 어떤 워드가 블록 내에서 마지막으로 기록되었는지가 인식될 수 있다. 또한 프로그램 실행 시 예컨대 데이터들은 항상 연속 어드레스로써 기록되거나 또는, 선형 연속 프로그램 처리 시 변환 테이블에 의해, 마지막에 기록된 B111의 값이 B110의 실제 비교값에 분명히 할당될 수 있다.
추가의 가능성은, 데이터 블록에 의해서 카운터 상태를 캐시 내에 프로세스-ID로서 저장하는 것이 아니라, 각각의 판독 액세스 시 실제 카운터 상태를 B106으로부터 제어 신호들(B1064)을 통해서 B106에 전달하는 것이다. 이 경우, 진행중인 사이클만이 상응하게 작은 메모리 비트 내에 프로세스-ID로서 저장된다. 그러나 메모리 크기는, 캐시 내의 데이터 블록이 오늘날 일반적으로 이미 64 K바이트까지 포함할 수 있기 때문에 실질적으로 줄어들지 않는다. 이로써, 예컨대 16개의 추가 프로세스-ID 비트는 0.0031% 보다 작다.
카운터(B1059, B1069)를 사용하지 않은, 동기화의 다른 실시예는 비교 모드의 요구를 위한 실행 유닛(B111)에 대한 제어 신호(B141)(예컨대 인터럽트)의 발송에 있다. 상기 실행 유닛(B111)은 공지된 최대 시구간(T) 이후, 비교 모드 내에서의 프로그램 부분의 처리에 의해 시작한다. 실행 유닛(B110)은 이에 상응하게 초기화되며 비교 모드 상에서 준비되지만, 이와 동시에 최대 시구간(T) 만큼 지연되어 시작된다. 따라서, 실행 유닛(B110)이 상응하는 데이터들을 발송하기 전에, 항상 비교 데이터들이 듀얼 포트 캐시(B106) 내에 먼저 제공되는 것이 보장된다. 이 경우 상기 값(T)에서는 경우에 따라, 데이터들이 다양하게 계산 즉, 실행 유닛(B111) 내의 다양성을 통해 B110보다 더 길게 요구되는 시간이 T에 가산되는 것도 고려된다.
비교 데이터들의 업데이트가 어떻게 보장되는지와 무관하게, 데이터들이 예컨대 주기적으로 업데이트되는 경우 아직 비교되지 않은 데이터들을 실행 유닛(B111)이 오버라이트하는 것은 방지된다. 이를 위해 비트(B16)의 리세팅, 예컨대 제어 신호(B141)의 리세팅도 실행 유닛(B111)에서 일어날 수 있다. B141이 세팅되는 한, 데이터들의 주기적인 업데이트 시, 실행 유닛(B111)이 마지막 사이클의 데이터들을 오버라이트하는 것은 방지된다. 실행 유닛(B111)은 대기 루프를 실행하거나, 데이터들의 비교 없이도 충분한 연산들을 실시한다. B141의 리세팅에 의해, 유닛(B106)으로부터 추가의 데이터들이 비교를 위해서 요구되지 않는 것과 이제까지의 비교 연산들이 종료되는 것이 신호화된다. 이 경우 B141이 새롭게 세팅 되지 않는 한, 실행 유닛(B111)은 실행-모드 내에서 작업한다. 이로써 캐시 내 데이터들의 오버라이트가 다시 가능하지만, B141의 새로운 활성화 이후에서야 비교 모드가 다시 시작된다.
다른 실시예에서, 신호(B141)는 인터럽트를 이용해서 비교 모드를 준비하기 위해, 항상 단시간만 활성화된다. 이 경우 데이터들의 오버라이트는, B141이 다시 짧게 세팅되어 이로써 개시된 인터럽트를 통해, 비교 데이터들을 새롭게 제공하는 해당 프로그램 지점에서 점프할 때까지, 방지된다.
비교의 시작 후, 모든 동기화 조치들은, 실행 유닛(B111)을 통한 비교 데이터들의 제공 사이의 시간 지속이 상기 데이터들을 B110의 데이터들과 비교하기 위해서 요구되는 시간보다 항상 더 크고, B111의 데이터들이 B110의 데이터들보다 항상 먼저 또는 적어도 동시에 제공되며, B110의 데이터들이 단순한 메모리 또는 FIFO 내에서 B100에 일시 저장됨으로써 실행 유닛(B110)이 동기화 목적을 위한 신호(B140)를 통해서 정지되지 않아도 되는 것이 적합한 조치에 의해서 보장될 수 있을 때, 생략될 수 있다. 여기에 제안된 방법들 중, 각각의 적용예를 위해서 요구되는 각각의 조치들만이 관련된다.
다른 바람직한 실시예에서, 듀얼 포트 캐시는 필수적으로 듀얼 포트 RAM에 의해서 구현되는 것이 아니라, 싱글 포트 RAM(B1056)이 사용된다(도B7 참조). 액세스 제어부(B1057)에 의해서, 각각의 요구에 따라 2개의 포트들이 연달아 사용되지만, 이들에 의해서 항상 RAM에 대한 단 하나의 액세스만이 신호들(B1058)을 통해서 가능하다. 이로써 액세스 충돌 시 B106에 의한 재판독은 경우에 따라 하나의 클록 또는 복수의 클록만큼 추가로 지연될 수 있지만, 데이터들이 2개의 실행 유닛들로부터 동기로 제공되지 않기 때문에, 이는 다양한 적용예들에서 단점이 아니다. 실행 유닛(B111)이 더 높은 우선 순위를 가지므로 액세스 시 방해 받지 않는 것만이 중요하다. 또한, 언급된 지연이 발생할지라도, 전체 균형 시 제2 포트를 위해서 충분한 액세스 가능성이 제공되는 것이 중요하다. 상기 실시예에서 이러한 장점은 제2 포트를 위한 분명한 하드웨어 절약에 있다. 도B7에서 신호(B1058)가 신호(B121)에 직접 연결되고 B1057 및 B102가 생략되는 한, 종래 기술에서 통상적인 바와 마찬가지로, 싱글 포트 캐시가 제공된다. 실행 제어부(B1057)의 확장 및 이로써 가능한 B102의 연결에 의해, 실제 평행성을 갖는 듀얼 포트 RAM보다 분명히 더 낮은 추가 비용이 사용된다.
유닛(B106)은 필수적인 별도의 유닛이 아니라, UVE(B100) 내에 통합될 수 있거나 캐시 또는 실행 유닛과 함께 하나의 칩에 집적될 수 있다.
도6에 따라 2개 이상의 포트들을 갖는 캐시가 제공되면 즉, 멀티-포트 캐시(B205)가 제공되면, 상응하게 도B8에서는 2개 이상의 프로세서들이 하나의 비교 모드에서 데이터들을 비교 또는 보팅할 수 있으며 즉, 다수 결정에 의해서 유효값을 결정할 수 있다. 각각의 추가 실행 유닛(B112, ...)을 위해서 도B8에 따라 추가의 판독 요구 유닛(B107, ...)이 제공되며, UVE(B200)는 상응하는 수의 입력들을 이를 위해 가져야 한다. 비교-모드 또는 보팅-모드에서, 캐시에 직접 연결된 실행 유닛은 비교 또는 보팅을 위한 데이터를 캐시 내에 직접 기록한다. 비교/보팅을 위한 데이터를 우선 제공하는, 나머지 실행 유닛들(B110, B112, ...,) 각각은 연결 된 캐시(B205)의 포트에 대한, 연결된 판독 요구 유닛(B106, B107, ...)을 통해서 상응하는 데이터들을 요구한다. 상기 실행 유닛은 상기 상태를 신호들(B8105)을 통해서 다른 실행 유닛들과 UVE에 전달한다. B102, B104, ...를 통해서 캐시에 의해 데이터들이 제공된 후, 데이터들은 UVE의 B8105를 통해서 비교를 위해 B200에 제공된다. 비교/보팅은, 모든 해당 실행 유닛들이 상응하는 데이터들을 제공할 때, 일어난다. 경우에 따라 다른 실행 유닛들은 상기 시점까지, 제어 신호들(B140, B142, ...)을 통해서 정지되어야 한다. 시간 모니터링은, 허용된 시간 윈도 내에서 비교가 발생하고 또는 에러가 신호화되는 것을 보장한다.
본 발명에 따른 장치는 RAM-메모리 대신에, MRAM, FERAM 등과 같은 다른 메모리 기술로 나타날 수도 있다.
[테이블 1]
Figure 112008008504010-PCT00001
[테이블 2]
Figure 112008008504010-PCT00002
[테이블 3]
Figure 112008008504010-PCT00003
[테이블 4]
Figure 112008008504010-PCT00004
[테이블 5]
Figure 112008008504010-PCT00005

Claims (19)

  1. 데이터 및/또는 명령을 위한 적어도 2개의 실행 유닛들과 적어도 하나의 제1 메모리 또는 메모리 영역을 갖는 컴퓨터 시스템에 데이터 및/또는 명령을 저장하기 위한 장치이며, 전환 수단이 제공되어 적어도 2개의 작동 모드들 사이가 전환되고, 비교 수단이 제공되어 제1 작동 모드는 비교 모드에, 제2 작동 모드는 실행 모드에 상응하는 데이터 및/또는 명령 저장 장치에 있어서,
    제2 메모리 또는 메모리 영역이 장치에 포함되고, 장치는 캐시 메모리 시스템으로서 형성되고, 적어도 2개의 분리된 포트를 구비하고, 하나의 포트는 제1 실행 유닛에 직접 연결되고, 제2 포트와 적어도 제2 실행 유닛 사이에 제3 장치가 포함되며, 이는 제2 메모리 또는 메모리 영역에 대한 제2 실행 유닛의 액세스가 상기 제3 장치에 의해서 실행되도록 구성되는 것을 특징으로 하는 데이터 및/또는 명령 저장 장치.
  2. 제1항에 있어서, 전환 유닛 및/또는 비교 유닛 내에 적어도 하나의 메모리 수단이 제공되고, 전환은 메모리 수단 내의 적어도 하나의 비트에 의해서 실행되는 것을 특징으로 하는 데이터 및/또는 명령 저장 장치.
  3. 제1항에 있어서, 전환은 컴퓨터 시스템에 대한 적어도 하나의 외부 또는 내부 신호에 의해서 실행되는 것을 특징으로 하는 데이터 및/또는 명령 저장 장치.
  4. 제1항에 있어서, 실행 모드 내에서, 직접 연결된 실행 유닛의 제3 장치는 제1 메모리 장치에 대한 판독 액세스 및 기록 액세스를 연결된 포트에 의해서 보장하는 것을 특징으로 하는 데이터 및/또는 명령 저장 장치.
  5. 제1항에 있어서, 캐시 메모리 시스템 내에 적어도 하나의 카운터가 제공되며, 이는 제1 실행 유닛으로부터 비교 연관 데이터들이 각각 저장될 때 카운터의 메모리의 제1 포트에 의해서 증분 또는 감소되는 것을 특징으로 하는 데이터 및/또는 명령 저장 장치.
  6. 제5항에 있어서, 상응하게 연결된 포트 상에 있는 비교 모드로의 전환 시 카운터는 카운터값을 출력하며 이 값은 제3 유닛에 저장되는 것을 특징으로 하는 데이터 및/또는 명령 저장 장치.
  7. 제5항에 있어서, 제2 카운터가 제3 장치에 제공되고, 제3 유닛의 제2 카운터를 세팅하기 위해서 카운터의 카운터값이 사용되는 것을 특징으로 하는 데이터 및/또는 명령 저장 장치.
  8. 데이터 및/또는 명령을 위한 적어도 2개의 실행 유닛들과 적어도 하나의 제1 메모리 또는 메모리 영역을 갖는 컴퓨터 시스템에 데이터 및/또는 명령을 저장하기 위한 방법이며, 전환 수단이 제공되어 적어도 2개의 작동 모드들 사이가 전환되고, 비교 수단이 제공되어 제1 작동 모드는 비교 모드에, 제2 작동 모드는 실행 모드에 상응하는 데이터 및/또는 명령 저장 방법에 있어서,
    캐시 메모리 시스템 내에 포함되고 적어도 2개의 분리된 포트를 구비한 제2 메모리 또는 메모리 영역이 제공되며, 이 경우 제1 실행 유닛은 제1 포트를 통해서 제2 메모리 또는 메모리 영역에 직접 액세스하고, 제2 실행 유닛은 제3 장치를 통해서 제2 메모리 또는 메모리 영역에 액세스하는 것을 특징으로 하는 데이터 및/또는 명령 저장 방법.
  9. 제8항에 있어서, 제3 장치는, 연결된 실행 유닛으로부터 데이터 및/또는 신호가 저장될 수 있는 메모리 수단을 포함하며, 이 경우 제3 유닛은 언급한 실행 유닛의 상태와 무관하게 데이터를 제2 메모리 또는 메모리 영역으로 교체할 수 있는 것을 특징으로 하는 데이터 및/또는 명령 저장 방법.
  10. 제8항에 있어서, 상기 제3 장치는 제2 처리 장치로부터 데이터 및/또는 어드레스 및/또는 제어 신호를 받으며, 제2 메모리 또는 메모리 영역의 상응하는 데이터들에 대해서 판독 또는 기록 액세스하는 것을 특징으로 하는 데이터 및/또는 명령 저장 방법.
  11. 제8항에 있어서, 캐시 메모리 시스템은 데이터들의 존재에 대해서 결정하며, 데이터들이 존재하지 않을 경우 신호를 제3 장치에 송신하는 것을 특징으로 하는 데이터 및/또는 명령 저장 방법.
  12. 제8항에 있어서, 제3 유닛 내의 데이터 및/또는 명령의 유효성이 조사되고 유효성이 있는 경우 전달되는 것을 특징으로 하는 데이터 및/또는 명령 저장 방법.
  13. 제12항에 있어서, 데이터 및/또는 명령을 저장한 추가 정보에 의해서 유효성이 조사되는 것을 특징으로 하는 데이터 및/또는 명령 저장 방법.
  14. 제8항에 있어서, 비교 모드로의 전환에 의해서 동기화 신호가 해당 실행 유닛에 발송되는 것을 특징으로 하는 데이터 및/또는 명령 저장 방법.
  15. 제8항에 있어서, 비교될 데이터들의 비교 및 편차의 경우 에러가 신호화되는 것을 특징으로 하는 데이터 및/또는 명령 저장 방법.
  16. 제8항에 있어서, 보팅될 데이터들로부터 적어도 하나의 데이터의 보팅 및 편차의 경우, 상태 및/또는 에러가 신호화되는 것을 특징으로 하는 데이터 및/또는 명령 저장 방법.
  17. 제8항에 있어서, 캐시 메모리 시스템 내에 카운터가 제공되며, 상응하게 연 결된 포트 상에 있는 비교 모드로의 전환 시 카운터는 카운터값을 출력하며 이 값은 제3 유닛에 저장되는 것을 특징으로 하는 데이터 및/또는 명령 저장 방법.
  18. 제17항에 있어서, 제2 카운터가 제3 장치에 제공되며, 제3 유닛의 제2 카운터를 세팅하기 위해서 카운터의 카운터값이 사용되는 것을 특징으로 하는 데이터 및/또는 명령 저장 방법.
  19. 제17항에 있어서, 캐시 메모리 시스템 내에 제공된 카운터가 하나의 포트에 할당되며, 각각의 포트에 접속된 처리 장치 내에서 비교 모드가 스위치온될 경우 고정된 값으로 세팅되는 것을 특징으로 하는 데이터 및/또는 명령 저장 방법.
KR1020087002749A 2005-08-08 2006-07-24 데이터 및/또는 명령을 위한 적어도 2개의 실행 유닛들과적어도 하나의 제1 메모리 또는 메모리 영역을 갖는 컴퓨터시스템에 데이터 및/또는 명령을 저장하기 위한 장치 및방법 KR20080033338A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE102005037234.1 2005-08-08
DE102005037234A DE102005037234A1 (de) 2005-08-08 2005-08-08 Vorrichtung und Verfahren zur Speicherung von Daten und/oder Befehlen in einem Rechnersystem mit wenigstens zwei Ausführungseinheiten und wenigstens einem ersten Speicher oder Speicherbereich für Daten und/oder Befehle

Publications (1)

Publication Number Publication Date
KR20080033338A true KR20080033338A (ko) 2008-04-16

Family

ID=36926336

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020087002749A KR20080033338A (ko) 2005-08-08 2006-07-24 데이터 및/또는 명령을 위한 적어도 2개의 실행 유닛들과적어도 하나의 제1 메모리 또는 메모리 영역을 갖는 컴퓨터시스템에 데이터 및/또는 명령을 저장하기 위한 장치 및방법

Country Status (6)

Country Link
EP (1) EP1915684A1 (ko)
JP (1) JP2009505178A (ko)
KR (1) KR20080033338A (ko)
CN (1) CN101243404A (ko)
DE (1) DE102005037234A1 (ko)
WO (1) WO2007017367A1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102073565B (zh) * 2010-12-31 2014-02-19 华为技术有限公司 触发操作方法、多核分组调试方法、装置及系统
KR101432274B1 (ko) 2013-12-12 2014-08-21 (주)이건산전 백업모듈을 포함하는 철도 차량용 제어기
CN112416609A (zh) * 2021-01-22 2021-02-26 南京芯驰半导体科技有限公司 双核模式的模式配置方法及装置

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4823256A (en) * 1984-06-22 1989-04-18 American Telephone And Telegraph Company, At&T Bell Laboratories Reconfigurable dual processor system
EP0439952A3 (en) * 1990-01-31 1992-09-09 Sgs-Thomson Microelectronics, Inc. Dual-port cache tag memory
JPH05128080A (ja) * 1991-10-14 1993-05-25 Mitsubishi Electric Corp 情報処理装置
US5751932A (en) * 1992-12-17 1998-05-12 Tandem Computers Incorporated Fail-fast, fail-functional, fault-tolerant multiprocessor system
CA2178440A1 (en) * 1995-06-07 1996-12-08 Robert W. Horst Fail-fast, fail-functional, fault-tolerant multiprocessor system
US6615366B1 (en) * 1999-12-21 2003-09-02 Intel Corporation Microprocessor with dual execution core operable in high reliability mode
US6772368B2 (en) * 2000-12-11 2004-08-03 International Business Machines Corporation Multiprocessor with pair-wise high reliability mode, and method therefore
DE10136335B4 (de) * 2001-07-26 2007-03-22 Infineon Technologies Ag Prozessor mit mehreren Rechenwerken
US7055060B2 (en) * 2002-12-19 2006-05-30 Intel Corporation On-die mechanism for high-reliability processor

Also Published As

Publication number Publication date
WO2007017367A1 (de) 2007-02-15
DE102005037234A1 (de) 2007-02-15
EP1915684A1 (de) 2008-04-30
CN101243404A (zh) 2008-08-13
JP2009505178A (ja) 2009-02-05

Similar Documents

Publication Publication Date Title
US5410669A (en) Data processor having a cache memory capable of being used as a linear ram bank
US5586293A (en) Real time cache implemented by on-chip memory having standard and cache operating modes
KR100257518B1 (ko) 캐쉬 슬라이스로서 리사이즈 및 재배치가능한 메모리 스크래치패드
JP2822588B2 (ja) キャッシュメモリ装置
US6606686B1 (en) Unified memory system architecture including cache and directly addressable static random access memory
KR101363585B1 (ko) 마이크로프로세서용 구성가능한 캐시
KR101441019B1 (ko) 마이크로프로세서용 구성가능한 캐시
JP2010191638A (ja) キャッシュ装置
US5860101A (en) Scalable symmetric multiprocessor data-processing system with data allocation among private caches and segments of system memory
KR101462220B1 (ko) 마이크로프로세서용 구성가능한 캐시
US8041930B2 (en) Data processing apparatus and method for controlling thread access of register sets when selectively operating in secure and non-secure domains
US7636812B2 (en) Cache memory control method and cache memory control device
US20110208916A1 (en) Shared cache controller, shared cache control method and integrated circuit
US6101589A (en) High performance shared cache
JP2009505180A (ja) 少なくとも2つの処理ユニットと、及び少なくとも1つのメモリとを有する計算機システム内に形成される及び記憶装置、及びそれによる記憶方法
KR100758185B1 (ko) 데이터 처리 장치
US6751700B2 (en) Date processor and storage system including a set associative cache with memory aliasing
KR20080033338A (ko) 데이터 및/또는 명령을 위한 적어도 2개의 실행 유닛들과적어도 하나의 제1 메모리 또는 메모리 영역을 갖는 컴퓨터시스템에 데이터 및/또는 명령을 저장하기 위한 장치 및방법
US20040243765A1 (en) Multithreaded processor with multiple caches
KR20050027213A (ko) 메모리 충돌들을 감소하기 위한 명령 캐시와 방법
CN111736900A (zh) 一种并行双通道的cache设计方法和装置
CA2378777A1 (en) Shared program memory with fetch and prefetch buffers
JP2009505181A (ja) 少なくとも2つの処理ユニットと、データおよび/または指令のための少なくとも1つの第1のメモリもしくはメモリ領域とを有する計算機システム内で指令および/またはデータを記憶するための方法および装置
JP3077807B2 (ja) マイクロコンピュータシステム
KR920001102B1 (ko) 정보 처리 장치

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application