KR100295074B1 - 응용주문형집적회로인에러정정코드메모리제어기 - Google Patents

응용주문형집적회로인에러정정코드메모리제어기 Download PDF

Info

Publication number
KR100295074B1
KR100295074B1 KR1019930028234A KR930028234A KR100295074B1 KR 100295074 B1 KR100295074 B1 KR 100295074B1 KR 1019930028234 A KR1019930028234 A KR 1019930028234A KR 930028234 A KR930028234 A KR 930028234A KR 100295074 B1 KR100295074 B1 KR 100295074B1
Authority
KR
South Korea
Prior art keywords
data
format
bus
queue
memory
Prior art date
Application number
KR1019930028234A
Other languages
English (en)
Other versions
KR940015820A (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 KR940015820A publication Critical patent/KR940015820A/ko
Application granted granted Critical
Publication of KR100295074B1 publication Critical patent/KR100295074B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1694Configuration of memory controller to different memory types
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/36Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
    • G09G5/39Control of the bit-mapped memory

Abstract

적어도 하나의 랜덤 액세스 메모리(RAM) 모듈과 결합된 적어도 하나의 프로세서로 구성된 컴퓨터 시스템이 개시되어 있다.
프로세서 버스는 프로세서를 메모리 제어기 (EMC)와 결합시킨다.
메모리 버스는 메로리 제어기를 메모리 모듈과 결합시킨다.
그러므로, 메모리 제어기는 프로세서와 메모리 모듈 사이에 결합된다.
메모리 제어기는 메모리 모듈에 대한 액세스를 프로세서에 의해서 제어한다.
응용 주문형 집적회로(ASIC)인 EMC를 사용함으로써 EMC는 프로세서의 총 부하를 경감시킴으로써 프로세서와 메모리 버스의 활용을 최대로 하는 기능성을 포함하도록 만들어진다.

Description

응용 주문형 집적회로인 에러정정코드 메모리 제어기
제1도는 본 발명의 메모리 제어기를 갖춘 컴퓨터 시스템을 나타내며,
제2도는 본 발명의 메모리 제어기를 나타내는 하이레벨 블록도.
제3(a)도는 본 발명의 메모리 제어기를 나타내는 상세 블록도.
제3(b)도는 제3(a)도는 상세 블록도내에서 데이타 및 신호의 흐름을 설명하며,
제3(c)도는 제3(a)도의 상세 블록도에서 입력과 출력 데이타 및 제어신호를 설명하며,
제4도는 본 발명의 메모리 제어기에 의해서 제어되는 마스터 장치를 나타내며,
제5도는 본 발명의 메모리 제어기에 대한 원형 버퍼큐(queue)를 나타내며,
제6도는 메모리 모듈 버스 슬롯에 대한 슬롯 구성을 나타내며,
제7도는 본 발명의 메모리 제어기에 의해 제어되는 비디오 프레임 버퍼에 대한 메모리 할당을 나타내며,
제8(a)도는 32비트와 16비트의 칼라화소포맷을 나타내며,
제8(b)도는 32비트 칼라 화소에 대한 청키(chunky) 전송을 나타내며,
제8(c)도는 칼라화소에 대한 X 채널평면전송을 나타내며,
제9도는 본 발명의 일실시예에서 사용되는 에러정정코드 방안에 대한 신드롬 디코드 데이블을 나타내며,
제10도는 본 발명의 메모리 제어기와 결합된 비디오 SIMM의 블록도이다.
[발명의 분야]
본 발명은 컴퓨터 시스템 및 관련된 메모리 구조의 분야에 관한 것이다. 더욱 특히, 본 발명은 메모리 제어를 위한 특히, 다이내믹 비디오 랜덤 액세스 메모리(RAM) 모듈을 제어하기 위한 방법 및 장치에 관한 것이다.
[발명의 배경]
전형적인 컴퓨터 시스템은 프로세서 또는 CPU, 메모리 서브시스템, 입/출력 서브 시스템 및 다른 특정 서브시스템으로 구성된다.
프로세서와 서브시스템 사이의 통신은 버스로 알려진 하나이상의 통신 통로를 통해 보통 이루어진다. 대부분의 컴퓨터 시스템에 있어서, 프로세서와 서브시스템은 통신을 위해 공통버스를 거쳐 결합된다.
컴퓨터 기술이 진보됨에 따라, 프로세서와 다른 서브시스템의 퍼포먼스는 개선되었다. 한 서브시스템의 개선된 퍼포먼스는 다른 서브시스템의 퍼포먼스가 개선되도록 요구한다. 예컨대, 프로세서의 퍼포먼스가 개선되면, 메모리 또는 입/출력 서브시스템은 개선된 프로세서의 퍼포먼스를 수용하기 위해서 종종 다시 설계된다.
유사하게, 메모리 서브시스템의 퍼포먼스가 개선되면, 프로세서 아키텍쳐는 개선된 메모리 서브시스템 퍼포먼스를 활용하기 위해 변화된다.
프로세서, 메모리 서브시스템 및 특정 서브시스템의 혁신적인 퍼포먼스 개선으로 인해, 컴퓨터 시스템의 통신통로는 종종 퍼포먼스가 “병목”되게 된다.
종래의 컴퓨터 시스템에 있어서, 컴퓨터 통로 아키텍쳐는 프로세서와 서브시스템의 개선에 따라서 설계되었다. 이런 시스템의 퍼포먼스는 통신통로를 포함하는 전체시스템을 재설계함이 없이는 쉽게 개선되지 않았다.
다중 버스 아키텍쳐는 하이 퍼포먼스의 다중 통신통로를 통해 프로세서 및 메모리 서브시스템과 특정 서브시스템 사이의 유연한 통신을 제공한다. 하이퍼포먼스의 통신통로는 다수의 프로세서와 다수의 서브시스템에 대한 통신을 가능하게 하며, 하이 퍼포먼스의 프로세서와 서브시스템을 위한 유연한 업그레이드(upgrade)를 가능하게 한다.
[발명의 요약]
다중 버스 구조의 각 버스폭이 효율적으로 활용되며 프로세서의 총 부하가 감소될 수 있도록 컴퓨터 시스템내의 다중 버스 구조를 통해 저어도 하나의 프로세서에 의해서 적어도 하나의 메모리 모듈과의 액세서를 응용 주문형 집적회로를 통해 제어하는 방법 및 장치가 개시되어 있다.
적어도 하나의 RAM 모듈과 결합된 하나의 프로세서로 구성된 컴퓨터 시스템에 있어서, 응용 주문형 집적회로(ASIC)의 메모리 제어기(EMC)는 프로세서와 메모리 사이에 결합된다. 다중프로세서 버스는 프로세서와 메모리 제어기를 결합시키며 메모리 모듈 버스는 메모리 제어기와 메모리 모듈을 결합시킨다.
본 발명의 일실시예에 있어서, 메모리 버스는 8개의 슬롯을 가지며 각 슬롯은 RAM 모듈을 수용한다.
RAM 모듈은 각각의 개별 모듈이 수용할 데이타의 유형에 따르는 다른 형태일 수 있다. RAM 모듈의 한 종류는 범용 데이타를 저장하는데 쓰이는 다이내믹 RAM(DRAM)이다. DRAM은 비교적 빨리 액세스될 수 있다.
그러나, DRAM은 전력이 제거될 때 또는 적절히 리플레쉬(refresh)되지 않는다면 DRAM의 내용을 잃게 되는 것을 뜻하는 휘발성이다.
메모리 모듈의 제2종류는 비휘발성 스태틱 RAM(SRAM)이다.
이것은 리플레쉬를 할 필요가 없으며 전력이 제거될 때도 데이타는 유지될 것이다. 메모리의 제3종류는 비디오 RAM(VRAM)이다.
DRAM 같이 VRAMM은 또한 휘발성이지만 각 VRAM 모듈은 자체에 리플레쉬 제어회로를 포함하고 있을 수 있다.
더욱이 VRAM 모듈은 이 모듈과 결합된 모니터상에서 비디오 디스플레이를 제어하는데 쓰일 수 있는 비디오 입/출력(VI/O) 포트를 포함할 수 있다.
EMC를 사용함으로써 ASIC 기능성을 제공하기 위해서 프로세서에 의존한다면 이용될 수 없었던 ASIC 기능성이 제공된다.
EMC 상의 핀 구성은 EMC가 프로세서로부터 다중 어드레스 공간에 응답하게 한다. 따라서, 하나 이상의 EMC는, 대응하는 EMC의 배타적인 제어하에서 분리된 메모리 버스와 결합된 각각의 EMC 제어 메모리 모듈을 갖춘 프로세서 버스와 결합될 수 있다.
EMC는 코히어런트(coherent)/공유 액세스동안 프로세서 버스와 결합된 느린(긴 대기 시간) 장치를 떠맡기 위해 응답을 지연하도록 프로그램될 수도 있다.
EMC는 또한 부적당한 메모리 모듈 타입으로의 데이타 전송시도를 검출하는 슬롯 에러 메카니즘을 갖추고 있다.
더욱이, EMC는 프로세서의 총 부하를 덜므로써 프로세서와 메모리 버스를 최대로 활용하는 기능성을 포함하게 만들어진다.
EMC는 메모리 버스가 데이터 전송에 이용될 수 있을 때까지 메모리에 기록될 데이타를 저장할 수 있는 원형 데이타큐를 갖추고 있다.
이런 특징은 데이타를 메모리에 기록할 때 메모리 버스가 클리어되길 기다리는동안 프로세서 버스의 정지 빈도를 감소시킨다.
더욱이, EMC는 메모리 버스와 쌍을 이루는 메모리 모듈의 리플레쉬를 선택적으로 수행할 수 있다.
이런 특징은 프로세서가 언팝퓨레이티드(unpopulated) 또는 자기-리플레쉬 메모리 모듈의 리플레쉬를 대기할 때 일어나는 총 부하를 제거한다.
또한, EMC는 두 모듈이 동시에 리플레쉬될 수 있도록 하는 메모리 버스와 쌍을 이룬 메모리 모듈을 선택적으로 리플레쉬할 수 있다.
더욱이, 리플레쉬될 필요가 있는 모듈만이 리플레쉬된다.
그러므로 메모리 버스는 EMC와 메모리 모듈사이에 리플레쉬 신호를 전송하는데 최소한의 시간을 소비한다.
다음은, 메모리 및 프로세서 버스가 효율적으로 활용되며 프로세서의 총 부하가 경감되는 것을 보장하기 위해서, EMC는 한 특정 포맷으로부터 다른 특정 포맷으로의 데이타 전송을 변환할 수 있다. 이런 방법으로, 비디오 데이타는 압축된 포맷으로 프로세서 버스를 거쳐 EMC에 전송될수 있다.
EMC는 계속해서 VRAM 모듈에 저장되기전에 압축된 비디오 데이타의 압축을 푼다.
비디오 데이타가 검색될 때, EMC는 프로세서 버스를 통해 요청하는 프로세서에 비디오 데이타를 보내기전에 다시 이것을 압축한다.
그러므로, 프로세서를 통해 전송될 데이타 양은 감소된다.
더욱이, 프로세서의 총 부하중 일부는 프로세서가 비디오 데이타를 저장하기 위해서 판독-수정-기록 동작을 수행할 필요가 없기 때문에 경감될 수 있다.
비-비디오 데이타에 대하여, EMC는 정정 데이타가 메모리 모듈로부터 검색되는 것을 검증하는데 쓰는 에러정정코드(ECC) 체크 비트를 부가한다.
EMC는 EMC가 니블(nibble) 경계에서 에러를 검출하게 하며 또한 몇몇 에러를 정정하는 에러검출과 정정 메카니즘을 사용한다.
EMC는 또한 메모리에 체크 비트를 판독하고 기록할 수 있는 능력을 갖는다.
비디오 입/출력(V I/O) 포트를 갖는 비디오 메모리 모듈에 있어서, EMC는 프로세서 버스로부터 수신된 전송요청을 메모리 버스의 가능성을 활용하는 V I/O 신호로 변환한다.
더욱이, 한 특정 메모리 모듈이 사용하는 프레임 버퍼의 타입을 프로그램할 수 있다. EMC는 기록될 데이타가 언제 메모리 모듈의 한 로우(row)를 따라 연속해서 정렬되는지를 결정하며, 만약 그렇다면 여분의 어드레스 스트로브 신호를 제거한다.
이런 특징은 데이타를 메모리 버스를 통해 기록하기 위해 필요한 클럭 사이클의 수를 감소시킴으로써 프로세서의 총 부하를 감소시킨다.
본 발명을 따르는 방법 및 장치의 목적, 특징 및 이점은 다음의 상세한 설명으로부터 명백해질 것이다.
[발명의 상세한 설명]
응용 주문형 집적회로인 메모리 제어기를 사용하여 메모리 액세스를 제어하는 방법 및 장치가 개시되어 있다. 다음의 서술에서 설명의 목적으로 특정 번호, 사항 및 형상은 본 발명의 완전한 이해를 제공하기 위해서 쓰인다.
그러나, 본 기술의 숙련자에게는 본 발명이 이런 특정사항없이도 실시될 수 있다는 것을 명백히 알 것이다. 다른 예에서, 공지의 시스템은 본 발명이 불필요하게 불명확히 되지 않도록 하기 위해서 도표 또는 블록도의 형태로 도시된다.
제1도는 본 발명의 교시를 따르는 응용 주문형 집적회로(ASIC) 메모리 제어기(EMC)(20)를 갖는 마더보드(50)상에 구현된 다중 버스 아키텍쳐를 나타낸다.
마더보드(50)는 프로세서 모듈, 메모리 모듈 및 시스템 상호접속모듈에 대한 통신통로를 세우기 위해 커넥터 슬롯, 버스 및 회로를 제공한다.
본 실시예에서, 마더보드(50)는 다중프로세서 버스(76), 시스템 상호접속버스(74), 메모리 버스(70), 소형 컴퓨터 시스템 인터페이스(SCSI) 버스(72) 및 외부버스(78)를 통해 통신을 가능하게 한다.
다중프로세서 버스(76)는 64개의 멀티플렉싱된 어드레스 및 데이타 라인으로 구성된다. 다중프로세서 버스(76)는 또한 마스터와 슬레이브 처리를 일치시키기 위한 제어신호 라인을 갖추고 다중프로세서 캐시 코히어런시 동작을 수행한다.
더욱이, 다중프로세서 버스(76)는 버스처리의 상태를 나타내는 신호라인을 갖추고 있다. 다중프로세서 버스(76)는 1 바이트에서 128 바이트까지의 버스트(burst) 전송의 데이타 전송크기를 가능하게 한다.
일실시예에 있어서, 다중프로세서 버스(76)는 40MHz에서 동작한다.
본 발명의 교시를 따르는 다중프로세서 버스의 이 이상의 논의는 참고로 본원과 완전히 합치되는 미국특허출원번호 07/461,165(1990년 1월 5일 제출, 발명의 명칭 : “고속도 액티브 버스”)를 참고하라.
마더보드(50)는 프로레서 모듈(도시안됨)을 결합시키기 위한 한쌍의 다중프로세서버스 슬롯(80)을 포함한다.
다중프로세서 버스 슬롯(80)은 프로세서 모듈과 다중프로세서 버스(76)를 결합시킨다. 마더보드(50)는 다중프로세서 버스(76) 및 메모리 버스(70)과 결합되는 메모리 제어기(EMC)(20)를 포함한다.
EMC(20)는 다중프로세서 버스 슬롯(80)과 결합된 프로세서 모듈이 메모리 버스(70)를 통해 메모리 서브시스템(10)을 액세스 할 수 있게한다.
EMC(20)는 다중프로세서 버스(76)를 통해 어드레스와 데이타를 수신하며, 메모리 서브 시스템(10)을 액세스하기 위해서 메모리 버스(70)를 통해 로우 어드레스 스트로브(RAS), 칼럼 어드레스 스트로브(CAS) 및 제어신호를 발생시킨다.
본 실시예에 있어서, 메모리 버스(70)는 에러정정코드(ECC 라인)을 포함하는 144개의 데이타 라인으로 구성된다.
이것은 또한 어드레스 및 제어라인이다.
메모리 버스(70)는 20MHz의 최대 데이타 전송을 주파수에서 동작한다.
메모리 버스(70)는 20MHz에서의 144비트의 데이타를 전달하며 EMC(20)가 40MHz에서 72비트의 데이타를 전달할 수 있게한다.
본 발명의 교시를 따르는 메모리 버스에 대한 이 이상의 논의는 참고로 본원과 완전히 합치되는 관련 미국특허출원번호 07/886,671(1992년 5월 19일 제출, 발명의 명칭: “집적된 데이타 및 비디오 메모리에 대한 버스 아키텍처”)을 참고하라.
메모리 서브시스템(10)은 단일 인-라인 메모리 모듈(SIMM)과 메모리 버스(70)를 결합시킬 수 있으며, 이런 SIMM은 VRAM SIMM(VSIMM), DRAM SIMM(DSIMM) 및 SRAM SIMM(SSIMM)을 포함한다.
메모리 버스(70)와 결합된 DSIMM은 마더보드(50)에 대한 주메모리로 구성된다.
메모리 버스(70)와 결합된 VSIMM은 비디오 프레임 버퍼 저장을 가능하게 한다.
비디오 커넥터(22)는 각각의 VSIMM에 비디오 출력 포트를 제공한다.
비디오 커넥터(22)는 VSIMM과 외부표시모니터의 결합을 가능하게 한다.
SSIMM은 비휘발성 데이타 저장을 제공한다.
일실시예에 있어서, 메모리 버스(70)와 메모리 서브시스템(10)은 8개의 메모리 SIMM까지 결합시킬 수 있다. 각 메모리 SIMM은 64 메가바이트까지 포함한다.
메모리 서브시스템(10)은 4개의 VSIMM까지 결합시킬 수 있으며 그결과 4개의 표시 모니터까지 지원하게 된다.
SIMM은 시스템 붕괴 또는 전원고장동안에 저장된 정보를 유지하기 위한 백업 배터리를 제공하기 때문에, 이들은 주메모리에서 유지되는 디스크 파일 정보를 저장하는데 특히 유용하다. 컴퓨터 오퍼레이팅 시스템은 SSIMM로 구성된 메모리 서브시스템(10)의 주메모리부에 디스크 파일 정보를 유지시킬 수 있다.
시스템 붕괴후에, 재부팅된 오퍼레이팅 시스템은 붕괴전 디스크 장치에 저장되지 않았던 디스크 파일 정보를 액세스할 수 있다.
그러므로 SSIMM은 시스템 붕괴 또는 전원고장에도 불구하고 오퍼레이팅 시스템이 오픈 디스크 파일의 완전성을 유지할 수 있게한다.
본 발명의 교시를 따르는 SIMM에 대한 이 이상의 논의는 참고로 본원과 완전히 합치되는 관련미국특허(출원번호 07/886,413, 발명의 명칭: 단일 인-라인 메모리 모듈, 제출일: 1992년 5월 19일)를 참조하라,
마더보드(50)의 다중버스 아키텍쳐는 다중프로세서 버스(76), 시스템 상호접속버스(74), 외부버스(78), SCSI 버스(72) 및 메모리 서브시스템(10)과 결합된 장치와 프로세서간의 유연한 통신을 가능하게 한다. 다중프로세서 버스 슬롯(80)과 결합된 프로세서 모듈은 다중프로세서 버스(76)를 통해 메모리 서브시스템(10)을 액세스한다.
EMC(20)는 다중프로세서 버스(76)를 통해 프로세서 모듈로부터 어드레스 및 데이타를 수신하며, 따라서 메모리 모듈 버스(70)를 통해 메모리 서브시스템(10)을 액세스한다.
본 발명의 교시를 따르는 다중버스 아키텍쳐에 대한 이 이상의 논의는 참고로 본원과 완전히 합치되는 미국특허(출원번호 07/886,045, 발명의 명칭: 다중 버스 아키텍쳐, 제출일: 1992년 5월 19일)를 참조하라.
제2도는 제1도에 도시된, 통합된 데이타 및 비디오 메모리 버스에서 동작하는 메모리 장치에 대한 액세스를 제어하는데 사용되는 메모리 제어기(EMC)(20)의 하이레벨 블록도이다.
제2도에서, 메모리 제어기(20)는 다중프로세서 버스(MBUS) 슬레이브 인터페이스(20a)를 통해 다중프로세서 버스(76)를 거쳐 전송된 어드레스 및 데이타 신호를 수신한다.
다중프로세서 버스 슬레이브 인터페이스(20a)는 MBUS 슬레이브 만으로서 동작하기 위해 설비를 통합하고 풀 레벨(full Level) 2 MBUS 프로토콜을 갖추고 있다.
다중프로세서 버스 슬레이브 인터페이스(20a)에 의해서 수신된후, 데이타 및 어드레스 신호는 몇몇 내부 로직 블록에 전송되고 연속해서 신호라인(12)에 재전송된다.
본 실시예의 메모리 제어기(20)는 체크 비트 발생, 에러검출 및 정정블록(20b); 데이타 버스, 체크 비트 및 어드레스 블록(20c); 다중프로세서 버스 아비터, 기록버퍼 및 데이타 컴포지(composer) 블록(20d); 제어신호의 발생 및 리플레쉬 블록(20e); 상태 및 제어 레지스터(20f); 및 비디오 I/O 액세스 블록(20g)을 포함한다.
제2도에 도시된 다중프로세서 버스 슬레이브 인터페이스(20a)는 다음의 설명을 따르는 스파크(SPARC) MBUS 인터페이스 설명서, 개정판 1.1에 개시된 것과 같이 풀레벨 2MBUS 슬레이브 프로토콜을 갖추고 있다. 메모리 제어기(20)에 의해서 나오는 모든 MBUS 긍정응답(Acknowledge)은, 재실행이 메모리 제어기(20)에 위해서 서비스 또는 발생되지 않기 때문에 MBUS 재실행(MTRY-) 없는 것으로 현재 제한된다.
그러나 메모리 제어기의 다른 형태는 MTRY-을 포함할 수 있다.
코히어런트 전송동안에 반사 갱신은 지지받지 못한다. 더욱이, 코히어런트 무효(CI) 동작은 다른 장치가 MBUS CI 긍정응답을 가지지 못하게 할 수 있다.
결국, MIHDEL 창내의 어써트된 MIH는 코히어런트 MBUS 전송 긍정응답을 중단하고 버스 소유권이 사라진다.
제3(a)도 내지 제3(c)도를 간단히 참조하면, 메모리 제어기(EMC)(20)에 관련된 데이타 및 제어신호의 흐름이 나타나 있다. 제3(a)도는 제1도에 도시된, 통합된 데이타 및 비디오 메모리 버스에서 동작하는 메모리 장치에 액세스를 제어하는데 사용되는 메모리 제어기(EMC)(20)의 로우레벨 블록도이다.
제3(b)도는 메모리 제어기(20)의 로우레벨 블록도내에서 데이타 및 제어신호의 흐름을 설명한다.
제3(c)도는 메모리 제어기(20)의 로우레벨 블록도내에서 데이타 및 제어신호의 흐름을 설명한다.
EMC는 하이/로우 메모리 어드레싱으로 세트될 수 있는 핀 구성을 갖추고 있다. 이것은 두 동일한 EMC부가 다중프로세서 버스가 결합될 수 있게하여 그결과 각 EMC는 그 자신의 메모리 모듈 버스와 연관된 SIMM를 갖는다.
일실시예에서, 다중프로세서 버스와 결합된 각 EMC는 8개의 SIMM를 지원할 수 있다.
그러므로, 하이/로우 구성핀을 적절히 세트함으로써, 2개의 메모리 제어기를 다중 프로세서 버스에 결합시킬 수 있으며 16개의 SIMM의 가질 수 있다.
그러므로 8개의 SIMM에 대한 512 메가바이트의 본 메모리 수용 능력에도 불구하고, 다중프로세서 버스에 이용할 수 있는 1 기가바이트의 어드레싱 가능한 메모리를 가질 수 있다. 이런 식으로, 주어진 메모리 모듈 버스와 이와 관련된 SIMM에 대해 같은 크기의 메모리 어드레스 공간을 유지하는동안 다중 프로세서 버스에 이용할 수 있는 메모리를 효율적으로 두배로 할 수 있다.
하이/로우 메모리 공간 구성의 특징은 EMC 칩상의 핀을 활성화시킴으로써 설정된다. 이 핀은 하이 또는 로우의 어드레스 공간이 칩의 그런 특정예에 대해 요구되어지는 여부에 따라 풀 업(pull up) 또는 풀 다운(pull down)되는 마더보드상에 형성된다. 핀의 어써션 또는 넌어써션은 장치에서 어떤 어드레스 공간이 긍정응답을 하는지를 알려준다. 그러므로, 모든 어드레스는 이런 1비트를 반영한다.
단일 EMC 시스템에서, 디폴트(default)값은 그 비트가 0인 것이다.
이런 비트가 1로 세트될 때, EMC는 완전히 다른 어드레스 공간에 응답한다.
이것은 제2 EMC가 제1 EMC와 같은 동작을 수행하게 하지만 다른 어드레스 공간에 동작하게 하여 그결과 두 EMC는 같은 버스를 사용할 수 있다.
만약 두 EMC가 같은 어드레스 공간에 응답한다면 이들은 동시에 데이타를 전달하고 저장할 것이며, 데이타는 파괴될 것이다.
이런 특징은 단지 하나의 신호를 변화시킴으로써 같은 요소를 갖는 완전히 다른 SIMM에 액세스할 수 있게한다.
이론상 하이/로우 어드레스 공간 특징은 하나이상의 핀이 특정 EMC칩에 대한 어드레스 구성 공간을 지정하게 함으로써 확장될 수 있다. 예컨대, 두개의 핀은 4개 까지의 EMC 칩이 동일한 다중 프로세서 버스에 놓이게 할 것이다.
그러나 다중프로세서 버스 상호접속은 고속의 상호접속(현재 40MHz)이기 때문에 소정의 버스 동작 주파수를 유지하는 동안 다중프로세서 버스와 결합될 수 있는 구성요소들의 수에는 물리적 한계가 있다. 많은 EMC 장치들이 다중프로세서 버스에 부가될 때 버스는 가득 채워지고 빠르게 동작안할 것이다.
40MHz에서 적당한 트레이드오프(trade off)는 단일 다중프로세서 버스상에 두개의 EMC를 갖는 것으로 나타난다. 만약 다중프로세서 버스와 결합된 EMC장치가 2개 이상 있다면, 현재 이용할 수 있는 기술을 가지고 다중프로세서 버스가 이런 속도로 동작하도록 하는 것은 매우 어려울 것이다.
핀 구성에서 논의됐던 다중프로세서 버스 어드레스 공간은 특정 메모리 모듈 버스를 갖는 SIMM의 어드레스 공간과 전혀 무관하다.
일실시예에서, 다중프로세서 버스 어드레스는 프로세서 또는 I/O로부터 다중프로세서 버스를 통해 나오고 EMC에 의해서 메모리 모듈 버스 어드레스로 디코드된다.
그러므로, 액세스 동작동안에, 하이/로우 어드레스 공간 구성 비트는 다중프로세서 버스를 통해 나오는 나머지 어드레스에 따라서 EMC로부터 디코드될 수 있다.
이런 식으로 하이/로우 메모리 공간 구성 비트는 단일 EMC에 의해 제어되는 어떤 세트의 SIMM의 어드레스 공간보다 많은 어드레스 공간을 제공한다.
더욱이, 제2 메모리 모듈 버스 및 제2 SIMM 뱅크는 마더보드상에 상주할 필요가 없다. 그러므로, 제2 EMC와 제2 메모리 세트를 포함하는 다중프로세서 버스에 끼워질 카드를 가질 수 있다. 제2메모리 세트는 SIMM에 위치할 필요가 없다.
이것은 단지 미처리된 메모리일 수 있다.
올바른 통합으로 현재의 기술상태는 1기가바이트의 절반이 카드에 상주할 수 있으며 카드가 메모리를 효율적으로 배가함으로써 본 시스템을 업 그레이드하는데 쓰일 수 있게 되었다.
EMC의 다른 특징은 EMC가 코히어런트(또는 공유) 액세스 동작동안에 EMC에 의해서 생긴 긍정응답의 지연을 프로그램화하여 바꿀 수 있게 한다는 것이다.
코히어런트 동작에 있어서 2개 이상의 다중프로세서 버스 마스터 장치(예컨대, 프로세서, I/O 장치)는 다중프로세서 버스와 결합되고 주어진 SIMM상의 같은 메모리 위치를 본질적으로 동시에 액세스할 수 있게된다.
제4도를 참조하면, 코히어런트 동작의 전형적인 시스템 구성을 나타낸다.
제4도에서 2개의 다중프로세서 버스 마스터 장치(180,182) 및 EMC(20)는 다중프로세서 버스(76)에 의해서 함께 결합된다.
더욱이 EMC(20)는 메모리 모듈 버스(70)에 의해서 SIMM(186)과 결합된다.
다중프로세서 버스 마스터 장치(180,182)는 프로세서나 I/O 장치 둘중 하나닐 수 있다. EMC의 긍정응답이 프로그램화하여 지연될 수 있는 코히어런트 동작에는 2가지 형태가 있다. 제1동작은 코히어런트 판독이고 제2동작은 코히어런트 무효이다.
장치(180)가 SIMM(186)의 메모리 위치를 판독하고 그 위치에 저장된 데이타를 수정하며 같은 위치로 갱신된 데이타를 도로 기록하는 것은 가능하다.
그러나, 장치(182)가 SIMM(186)의 같은 메모리 위치를 판독하고 그 위치에 저장된 데이타를 수정하며 같은 위치로 갱신된 데이타를 도로 기록하는 것도 또한 가능하다. 장치(180)가 SIMM(186)의 같은 위치를 판독한 후 그러나 그 위치로 수정된 값을 기록하기전에 만약 장치(182)가 SIMM(186)의 같은 위치를 판독한다면 문제가 일어날 것이다. 이것은 장치(182)가 그 위치에 저장된 데이타를 판독할 때 가장 최근의 데이타 버젼을 판독하지 않기 때문이다.
이 문제를 해결하기 위해서, 다중프로세서 버스의 프로토콜은 장치(180,182)와 같은 다중프로세서 버스 마스터 장치에게 장치가 수정을 진행하고 있는 어떤 메모리 위치가 다른 장치에 의해서도 또한 판독될 수 있는지 여부를 결정하기 위한 모든 판독동작을 모니터하길 요구한다.
제1장치가 제2장치에 의해서 제1장치가 수정하는 한 위치로 액세스를 검출할 때 다중프로세서 버스 프로토콜은 제1장치가 수정된 값으로 위치를 갱신할 수 있을 때까지 제2장치에 의해서 메모리 위치의 액세스를 중지시키기 위해서 제1장치가 다중 프로세서 버스상의 신호를 어써트할 것을 요구한다.
이런 중지신호는 EMC가 메모리 위치가 액세스될 준비가 되어 있다는 긍정응답을 하기전에 제1장치에 의해서 어써트되어야만 한다.
보통, 다중프로세서 버스 마스터 장치는 EMC(20)이 메모리 위치가 액세스될 준비가 되어 있다는 긍정응답을 할 수 있기전에 SIMM에 대한 액세스를 중지할 수 있을만큼 충분히 빠르다. 그러나 다중프로세서 버스 마스터 장치가 보통 대기시간의 특성보다 길 수 있는 경우도 있을 수 있다.
그런 장치는 응답할 수 있을 정도로 충분히 빠를 수 없고 이 때문에 EMC(20)가 긍정응답을 하기전에 다른 다중프로세서 버스 마스터 장치에 의해서 액세스를 중지한다.
이 경우 에러를 피하기 위해 본 발명은 프로그램화된 EMC(20)의 긍정응답이 다중 프로세서 버스와 결합된 가장 느린 다중프로세서 버스 마스터 장치에 의해 액세스를 중지하는데 필요한 시간보다 긴 시간으로 지연시킨다.
다른 코히언런트 동작은 코히어런트 기록이며 이것은 코히어런트 무효(CI) 동작이라고 불린다.
코히어런트 무효 동작은 실제로 데이타를 전송하지 않는다.
대신, 코히어런트 무효는 캐시내의 한 라인의 메모리에 무효를 표시한다.
각 다중프로세서 버스 마스터 장치는 코히어런트 무효동작명령을 낼 수 있다.
그러나, 무효로 표시된 라인을 포함하는 캐시 메모리에 대한 캐시 제어기는 실제로 코히어런트 무효동작을 수행한다.
만약 제2다중프로세서 버스 마스터 장치가 사용되고 있는 한 라인의 메모리를 제1다중프로세서 버스 마스터 장치가 캐시 제어기를 통해 명령한다면, 제2다중프로세서 버스 마스터 장치는 CI 명령을 내야만 한다.
다시한번 EMC(20)는 보통보다 느린 다중프로세서 버스 마스터 장치가 CI 명령을 기록하기 위해서 CI의 긍정응답을 지연하도록 프로그램화할 수 있다.
코히어런트 판독 및 무효의 두 경우에 있어서, 본 발명은 EMC 긍정응답 창이 프로그램화한 가변시간주기까지 지연되게 한다.
이런 식으로, EMC(20)는 긴 대기시간 특성을 갖춘 다중프로세서 버스 마스터 장치를 조정할 수 있을만큼 범용일 수 있다.
그러므로, 다수의 마스터는 다중프로세서 버스와 결합될 수 있으며, 만약 느린 마스터가 있다면 EMC(20)의 응답은 가장 느린 마스터의 대기시간과 맞추기 위해서 시스템을 느리게 하도록 프로그램화하여 바뀔 수 있다.
그러므로, 보다 느린 프로세서도 다중프로세서 버스에 접속되는 것이 배제되지 않는다.
ASIC인 EMC(20)를 사용함으로써, 본 발명의 EMC는 프로세서의 총 부하를 경감하면서 프로세서와 메모리 버스의 활용을 최대화하는 기능성을 포함한다.
본 발명의 EMC에 의해서 제공된 그런 하나의 기능은 원형기록버퍼이다.
원형 데이타 큐는 다중프로세서 버스기록동작을 버퍼링(buffering)한다.
기록정보(어드레스 및 데이타)는 다중프로세서 버스를 통해 큐에 들어가고, SIMM이 이용될 수 있을 때 예컨대, 메모리 모듈 버스상에서 다른 전송에 의해서 잠겨지지 않을 때 메모리 모듈 버스를 통해 분산된다.
이런 식으로, 기록은 추가적인 기록이 큐에서 대기하는동안 분산된다.
가능한 빠른 큐잉(queuing) 기록은 프로세서 버스가 계속 쓰이게 하고 이로써 다른 전송을 수행하게 한다.
판독될 어드레스가 일단 특정되면 특정된 위치가 액세스되고 데이타가 검색되는 동안 시간이 경과하여야만 한다는 것이 판독동작이 특징이다.
그러나, 기록동작동안 기록될 데이타는 전송과 동시에라고 알려져 있다.
그러므로, 본 발명에 있어서, EMC는 원형 데이타 큐 및 원형기록버퍼를 함께 형성하는 대응 어드레스 큐를 갖추고 있다. 원형기록버퍼는 메모리 모듈 버스가 데이타 전송에 자유로이 이용되고 SIMM이 데이타를 수신할 준비가 되어 있을 때까지 기록될 다중프로세서 버스로부터 메모리까지 EMC에 의해서 수신된 데이타를 저장할 수 있다. 이런 특징을 데이타가 메모리에 기록될 때 클리어하기 위해서 메모리 모듈 버스를 대기하는동안 다중프로세서 버스가 중지되어야만 하는 빈도를 감소시킨다.
그러므로, 예컨대 프로세서는 리플레쉬되고 있기 때문에 이용될 수 없는 메모리 위치에 기록을 시도할 수 있다.
원형 데이타 큐의 특징이 없다면, 그 위치에 기록하기전에 다중프로세서 버스는 리플레쉬되어야 할 메모리 위치를 대기하는동안 중지되어야만 한다.
그러나 이런 특징을 갖추면, 원형 데이타 큐는 메모리 위치가 리플레쉬될 때까지 기록될 데이타값 및 어드레스를 보유할 수 있다. 큐에 빈 공간이 있는한, 부가적인 기록동작은 제1기록이 완료되기전 큐에 더해질 수 있다.
기록이 한번 이루어질 때, 이론적으로 메모리 모듈 버스가 그렇지 않고 아이들(idle) 상태에 있을 때, EMC는 큐잉된 데이타의 기록을 제어한다.
그러는동안, 다중프로세서 버스는 특정기록동작을 중지시킬 필요가 없다.
그러므로 다중프로세서 버스와 메모리 모듈 버스의 활용은 증가한다.
제5도를 참고하면, 원형기록버퍼(14) 및 그 대응 어드레스 큐(18)의 배열이 나타나있다. 이중 요청 64 바이트의 기록버퍼(14)는 8개의 엔트리(14a-h)의 원형 데이타큐로 요약된다.
이런 논리적인 요약을 사용하여 데이타는 파이프라인 긍정응답일 때 동시에 검색될 수 있다.
본 실시예에 있어서, 기록요청은 단일 바이트에서 128 바이트까지 크기가 변한다.
보통의 경우 전송 크기는 캐시라인(32 바이트)의 크기이다.
그러므로, 채용된 64 바이트 버퍼는 보통 경우의 전송 크기에 두배이다.
64 바이트의 버퍼폭은 2개의 32바이트 캐시라인 플러시를 큐잉하게 하며 메모리 버스가 이용가능하게 될 때 이들을 기록하게 한다. 그러므로, 커패시티 모드에서 버퍼는 단일 64바이트의 전송 또는 2개의 32바이트 전송을 저장할 수 있다.
기록동작의 메모리 어드레스 페이즈(MAS) 동안, 기록될 어드레스는 기록될 데이타의 포맷을 식별하는 다른 정보에 따라 다중프로세서 버스를 통해 온다.(예컨대, 평면 또는 청키 VRAM, DRAM, 비디오 I/O).
그후 원형 데이타 큐(14)는 기록될 데이타를 저장하며 메모리 버스가 자유롭고 데이타가 기록될 수 있을 때까지 데이타를 큐잉한다. 큐가 일단 채워지면 EMC는 MRDY-신호를 어써트하지 않음으로써 다중프로세서 버스를 막는다.
이런 신호는 큐(14)가 데이타를 받아들일 수 있게 다시 이용될 수 있을 때까지 버스에서 유지되도록 하기 위해서 다음 데이타가 기록되게 한다.
많은 포인터는 원형 데이타 큐(14)에 의해서 사용된다.
기록동작으로부터 데이타를 수신할 수 있게 하기 위해서 데이타 큐의 다음 바이트 위치를 가리키는 필 포인터가 있다.
또한 기록동작에 데이타를 제공하기 위해서 원형 데이타 큐의 다음 바이트 위치를 가리키는 언로드 포인터가 있다.
이런 식으로, 데이타는 다른 데이타가 선입선출(FIFO) 방안을 사용하여 들어갈 때와 동시에 원형 데이타 버퍼(14)로부터 분배된다.
큐(14; 16)의 시맨틱스(semantics)는 버퍼 배열, 엔트리 번호, 버스크기 및 전송 크기와 무관하고, 이것에 의해서 버퍼가 부가의 버퍼와 같은 크기로 만들어지게 한다.
기록 버퍼 큐의 제어에 대한 시맨틱스는 다음과 같다:
어드레스 큐
aqld IN 새 어드레스를 다음 어드레스 버퍼에 로드
aqld IN 어드레스 언로드 포인터를 증가
aqfull OUT 어드레스 큐가 채워져 있다
aqne OUT 어드레스 큐는 비워져 있다
데이타 큐
dqld IN 새 데이타를 다음 데이타 버퍼에 로드
dquld IN 데이타 언로드 포인터를 증가
aqflml OUT 데이타 큐는 채워져 있는 엔트리중 하나이다.
제6도를 참조하면, 8개의 SIMM 슬롯(로우 0-7로 설계된)이 나타나 있다.
본 발명의 일실시예에 있어서, 제6도의 8개 SIMM 슬롯은 메모리 모듈 버스에 의해서 EMC와 결합된다.
각각의 SIMM은 슬롯에 끼어짐으로써 메모리 모듈 버스를 통해 EMC와 결합된다. 어떤 주어진 시간에서 시스템내의 소정수의 슬롯(1개서부터 8개까지)은 SIMM에 있을 수 있게된다.
본 발명의 특징은 EMC가 메모리 모듈 버스와 결합된 SIMM의 리플레쉬를 선택적으로 행할 수 있다는데 있다. 이런 특징은 프로세서가 메모리 모듈의 리플레쉬를 제어할 필요를 제거하여 프로세서의 총 부하를 경감한다.
이 특징은 다중프로세서 버스가 프로세서와 EMC 사이의 리플레쉬 신호를 전송하는데 시간이 걸리는 필요를 제거함으로써 다중프로세서 버스 활용을 또한 증가한다.
더욱이, 본 발명에서, EMC는 메모리 모듈 버스와 결합된 SIMM을 프로그램화하여 선태적으로 리플레쉬할 수 있기 때문에 리플레쉬가 필요한 SIMM만이 리플레쉬된다. 더욱이 EMC는 다수의 SIMM을 동시에 리플레쉬할 수 있다, 그러므로 메모리 모듈버스는 EMC와 SIMM 사이에 리플레쉬 신호를 전송하는데 걸리는 총 시간에 대해 최소한의 시간을 소비하여 이것으로 인해 메모리 모듈 버스의 활용을 증가시킨다.
EMC가 비록 VISMM을 리플레쉬하기 위해 세트될 수 있을지라도, VSIMM은 그 자신을 리플레쉬할 수 있어, 그결과 EMC는 그들을 리플레쉬할 필요가 없다. 유사하게, SSIMM(비휘발성 SIMM)은 다이내믹 메모리가 아니고 또한 리플레쉬를 요구하지 않는다.
그러므로 DSIMM이 리플레쉬되어야만 하는 반면, SSIMM과 VSIMM은 그럴 필요가 없다. 그러므로, 커패시티 시스템에까지 다수의 SIMM이 있을 수 있을 뿐만 아니라 하나 또는 몇몇 SIMM을 리플레쉬할 필요가 있다.
본 발명의 일실시예에서는 슬롯이 리플레쉬되어야 하는지를 프로그램화하여 가리키는 할당된 제어상태 레지스터내에 8개의 리플레쉬 비트(2개의 16진수 디지트)가 있다.
그러므로, 단지 한개의 SIMM이 리플레쉬되어야 하는 구성에서, 슬롯 0에서 SIMM만이 리플레쉬 되어야하는 사실은 0과 같은 하나 및 나머지 비트와 동일한 리플레쉬 비트의 최하위 비트를 세트함으로써 나타낼 수 있다(그결과 리플레쉬 비트는 16진수로 0-1의 값을 가질 것이다). EMC는 단지 제1로우(슬롯 0)를 리플레쉬하고 다른 7개의 로우를 리플레쉬하려고 하지 않을 것이다.
따라서, 리플레쉬될 2개의 SIMM이 있다면 2개의 SIMM 로우가 리플레쉬되어야만 하는 것으로서 EMC를 명령하기 위해서 제어상태 레지스터의 8개의 리플레쉬 비트를 다른 코드로 세트할 것이다.
EMC는 만약 2개의 SIMM이 근접할 슬롯에 위치한다면 2개의 SIMM을 동시에 리플레쉬할 수 있다.
그러므로, 만약 2개의 SIMM이 리플레쉬되고, 그러나 1개의 SIMM은 슬롯 0에 있고 다른 SIMM은 슬롯 7에 있다면 이들은 슬롯 0과 7이 리플레쉬 쌍의 일부가 아니기 때문에 분리된 페이즈에서 둘다 리플레쉬될 수 있을 것이다.
메모리를 구성하기 위한 보다 효율적인 방법은 동일한 리플레쉬 쌍의 일부인 슬롯에 SIMM을 두는 것이다.
그러면, 리플레쉬 사이클은, 제어상태 레지스터가 프로그램될 수 있어 그결과 EMC가 불필요한 리플레쉬 사이클을 수행하지 않기 때문에 낭비되지 않을 것이다.
EMC에서 이런 특징이 없다면, 각 리플레쉬 동작이 퍼포먼스로부터 멀어지기 때문에(즉, 다른 동작에 이용할 수 있는 많은 클럭 사이클) 리플레쉬되어야 할 필요가 없는 메모리를 리플레쉬함으로써 또는 빈 슬롯의 팬텀(phantom) 메모리를 리플레쉬 함으로써 일어나는 퍼모먼스의 감소 및 전체적인 리플레쉬 사이클의 낭비가 있을 것이다. EMC는 리플레쉬되어야만 할 장치만을 리플레쉬함으로써 퍼포먼스를 증가시킨다.
8비트 리플레쉬 표시기의 세팅은 시스템에 형성된 것처럼 수동적으로 세트될 수 있다. 선태적으로, 8비트 리플레쉬 표시기의 세팅은 시스템의 소프트웨어에 의해서 자동적으로 결정될 수 있다.
시스템은 이용가능한 SIMM이 특정 형태밖에 없기 때문에 어느 SIMM이 리플레쉬를 필요로 하는지 또한 파라매터를 자동적으로 세트하는지 검출할 수 있다.
VSIMM과 DSIMM은 메모리 모듈 버스에서 같은 넓이를 차지한다.
다중프로세서 버스 마스터 장치가 SIMM에 대한 액세스 동작을 개시하는동안, SIMM에 대한 어떠한 전송은 EMC에 의해서만 제어된다.
다중프로세서 버스를 통해 EMC로 보내진 액세스 개시명령은 어떤 형태의 전송이 실행되는지(즉, VRAM 전송인지, 비디오 I/O 전송인지 또는 DSIMM 전송인지) 식별하는 ID를 어드레스 패킷에 가지고 있다.
EMC는 ID를 디코드하고, 어드레스 페이즈동안 다중프로세서 버스를 통해오는 ID값에 따르면서 EMC는 전송을 적절히 제어한다.
한편, 메모리 모듈 버스는 어떤 형태의 SIMM의 특정 슬롯에 설치되었는지 알리기 위해서 메모리 모듈 버스를 통해 SIMM으로부터 다시오는 ID를 각 형태의 SIMM이 EMC에 제공할만큼 충분한 와이어를 가지고 있지 않다.
이것은 본 발명의 일실시예에서 SIMM이 비용을 감소시키기 위해 제한된 수 즉, 251개의 신호 핀으로 설계되어 있기 때문이다.
제한된 수의 신호핀이 있기 때문에, SIMM으로부터 메모리 모듈 버스를 통해 오는 인코드된 ID를 가질만큼의 충분한 이용가능의 신호는 간단히 없게된다.
VSIMM과 SSIMM은 DSIMM보다 훨씬 복잡하고, 그들은 그들의 SIMM 타입을 식별하기 위해서 EMC에 의해서 판독될 수 있는 ID를 가진다.
그러므로, VSIMM과 SSIMM은 둘다 그들의 ID에 의해서 쉽게 식별될 수 있다.
그러나, DSIMM은 EMC가 메모리 모듈 버스를 통해 판독할 수 있는 ID를 갖지 않는다. 그러므로, DSIMM을 포함하며 슬롯을 자동식별하는 것은 더욱 어렵다.
소프트웨어는 하나의 슬롯이 데이타를 슬롯에 기록하고 데이타를 다시 판독함으로써 메모리 모듈에 포함될 수 있는지를 결정할 수 있다.
만약 슬롯이 비어있다면, 기록된 데이타는 판독가능하게 되지 않을 것이다.
더욱이, 슬롯이 비휘발성인 SIMM(즉 DSIMM)을 포함하고 리플레쉬가 슬롯에 대해 가능하지 않다면, SIMM에 저장된 데이타는 기록후에 즉시 판독되어질 수 있고, 그러나 소정시간경과후 휘발성 SIMM에 저장된 데이타는 SIMM이 리플레쉬되지 않기 때문에 더이상 판독될 수 없을 것이다.
따라서 제거에 의해서 소프트웨어는 슬롯이 DSIMM을 포함한다고 결정한다.
더욱이, 상기 구성에서는 4개의 리플레쉬 페이즈가 있다.
EMC는 실제 리플레쉬할 때 2개의 근접 로우를 합친다.
마더보드 중간에서 마더보드 끝의 실제 배열은 슬롯 0에서 시작하며 슬롯 7까지 미친다. 만약 리플레쉬될 2개의 SIMM이 동일한 리플레쉬 페이즈에 있는 슬롯에 선택적으로 놓여진다면, EMC는 동시에 2개의 SIMM을 리플레쉬할 것이다.
선택적으로, 만약 SIMM이 동일 리플레쉬 쌍의 일부가 아닌 슬롯에 놓여진다면, 그들은 EMC에 의해서 연속적으로 리플레쉬될 것이다.
제6도에 도시된 본 발명의 실시예에서, 로우 어드레스 스트로브는 0, 4, 1, 5, 2, 6, 3 및 7의 순서로 실제 배열된다.
이것은 본 실시예에서 비디오 SIMM이 다른 SIMM과 다른 실제 제한을 가지기 때문에 어떤 슬롯에만 놓여질 수 있기 때문이다.
본 실시예에서, 비디오 SIMM이 다른 SIMM과 같은 슬롯에 끼워지는 반면에, VSIMM은 다른 SIMM보다 아주 조금더 공간을 차지한다.
또한 VSIMM용의 특정 연장된 커넥터가 있다. 그러나 VSIMM이 제6도의 방식대로 배열되는 것은 단지 비디오 SIMM 보드의 냉각 및 간격 속성 때문이다.
일반적으로 슬롯의 실제 배열은 중요치 않다.
EMC는 리플레쉬가 동기화되게 한다.
이런 특징은 한 값을 EMC내의 레지스터에 기록함으로써 활성화된다.
한 비트가 일단 이 위치에 기록될 때, EMC는 신호의 동기화가 풀릴 때까지 모든 동작(예컨대, 판독동작)을 실세 중단할 것이다. 리플레쉬 동기화 특징은 테스트 목적이며, 같은 클럭펄스로 모든 것이 시작되게 할 수 있다.
4개의 리플레쉬 사이클이 있기 때문에, EMC는 다음 4개의 리플레쉬 사이클까지 중단시킬 것이다. 그러므로, 주어진 판독동안, 판독은 리플레쉬 사이클 후에 일어나고 위치판독은 판독긍정응답할 때 동일한 내부 리플레쉬 카운트를 항상 갖는다.
리플레쉬 동기화 특징은 장치를 테스트하기 위해 벡터를 사용할 때 EMC의 테스트를 돕는다. 벡터를 사용하여 테스트할 때, 상당한 양의 다른 잘못된 활동은 중요한 테스트 시컨스가 도달되기전에 일어날 수 있다.
리플레쉬 동기화 특징은 동기화를 가능하게 하여 중요한 테스트 시컨스가 일어날 때, 같은 예견할 수 있는 결과를 항상 야기할 것이다.
EMC는 같은 메모리 모듈 버스 슬롯에 서로 바뀌어 삽입되는 VSIMM과 DSIMM을 다 지원한다. 그러므로, EMC에서 SIMM까지의 메모리 모듈 버스의 제어라인은 많은 다른 신호를 공유하여야만 한다.
본 발명의 일실시예에 있어서, 대략 100정도의 신호는 주어진 슬롯내의 SIMM의 어떤 타입에 대한 전송을 실행할 수 있게 공유되어져야만 한다.
주의해서 설계하지 않으면, 하나이상의 장치가 끼워질 수 있는 버스를 갖기 쉬어진다. 두 출력장치가 같은 시간에 같은 신호를 구동할 때인 경합이 있을 수 있는 몇몇 경우가 있다.
각 잠재적인 경합의 경우는 경합의 가능성을 제거해야만 한다.
이것을 성취하기 위해서, 제어는 한 장치로 전송을 실행할 때 다른 장치는 인에이블 모드가 아니게 상호 배타적이어야 한다.
VSIMM 슬롯에 대해, EMC는 주어진 VSIMM 슬롯에 있는 VSIMM에 의해 점유된 프레임 버퍼의 제어 상태 레지스터(CSR)에서 프로그램을 가능하게 한다.
비디오 구성 레지스터(VCONFIG)는 실제 VSIMM RAS 슬롯 4-7의 구성을 특정한다. RAS-슬롯 배열은 VSIMM 프레임 버퍼 어드레스 시프팅에 쓰이며 잘못된 슬롯 에러를 검출하기 위해 쓰인다.
본 발명의 일실시예에서, VCONFIG은 다음의 방안을 따르는 개별적인 RAS 슬롯의 구성을 특정화하는 2개의 실행비트의 4세트를 갖춘 8비트 필드이다.
VCONFIG값 의미
0 슬롯의 DRAM 또는 슬롯은 비어 있다
1 128 비트 2MB 프레임 버퍼 VRAM
2 128 비트 4MB 프레임 버퍼 VRAM
3 256 비트 8/16MB 프레임 버퍼 VRAM
그러므로, VCOMFIG은 주어진 슬롯에 있는 VSIMM에 대한 프레임 버퍼 타입을 가리키기 위해 또는 슬롯이 비어있거나 또는 DSIMM을 포함한다고 가리키기 위해 프로그램화될 수 있다. 0으로 프로그램될 수 있는 DRAM(또는 빈 슬롯)에 대한 티폴트 타입이 있다. 각 VSIMM은 비디오 프레임 버퍼를 갖는다.
VSIMM에 대해, VCONFIG은 프레임 버퍼가 각각 로우-리졸루션(low-resolution), 미디엄-리졸루션 또는 하이-리졸루션인지에 따라 1, 2 또는 3으로 프로그램된다.
다음의 경우는 부접합이 발생할 때 일어나는 경합의 문제이다.
즉, 이 문제는 잘못 참조된 슬롯의 다중프로세서 버스 전송에 의해 야기된 변칙적인 것이다.
이 경우는 시스템 에러나 또는 커널 레벨(kernel level) 소프트웨어에 의해 일어난다. 각 경우에 있어서, 안전한 조치는 이 문제를 피하고 검출하기 위해서 EMC 프로토콜을 갖추는 것이다. 본 발명의 일실시예에서 안전조치는, 다른 검출불능의 시스템 에러일 수 있는 것과 같이 코너의 경우가 메모리의 붕괴를 막지 못한다.
그러나 이 안전조치는 영구적인 하드웨어 고장을 막으며 시스템의 신뢰도를 증가시킨다. 제1경우는 비디오 I/O 액세스가 있고 그러나 타켓트는 DSIMM일 때 일어난다. 이경우, DRAM SIMM은 공유 CBW 버스를 구동할 수 있다.
안전 예방책으로서, DRAM은 데이타 버스를 구동할 수 있는 CAS가 아니며, 비블록 RAS 펄스폭은 DRAM 설명서에 위반된다.
그러므로, 붕괴된 DRAM에 대한 그후의 어떠한 액세스는 정정할 수 없는 에러(UE) 폴트(fault)를 검출할 것이다.
제2경우는 DRAM 액세스가 있고 그러나 타켓트가 DSIMM일 때 일어난다.
이경우, DRAM은 공유 D/CBW 버스를 구동할 수 있다.
안전 예방책으로서, DRAM 기록 인에이블(WE)은 DRAM이 데이타 버스룰 구동못하게 하는 액세스동안 어써트되고 위치를 붕괴시킨다.
이것은 차후의 DRAM 액세스가 UE 폴트를 검출하게 한다.
결국, 제3 경우는 DRAM 액세스가 있고 그러나 타켓트는 VSIMM일 때 일어난다. 이경우, VRAM은 공유 D 버스를 구동할 수 있다.
안전 예방책으로서, (RAM 출력 인에이블) ROE는 CBW 판독 인에이블된 VRAM가 데이타 버스를 구동못하게 하며, 기록 인에이블된 VRAM이 UE 폴트를 유도되게 하는 저장동안 디어써트된다.
상기 각각의 세 경우에 있어서, 만약 VCONFIG이 적절히 프로그램된다면, 슬롯 에러 폴트는 폴트 상태 레지스터(FSR) 및 폴트 어드레스 레지스터(FAR)에 의해서 기록된다. 더욱이, 제어 상태 레지스터의 VCONFIG 레지스터가 특정 슬롯이 DSIMM 또는 VSIMM을 포함하는지에 대한 데이타를 포함하도록 프로그램될 수 있기 때문에, EMC는 슬롯 에러 특징을 제공할 수 있다.
슬롯 에러 특징은 다중프로세서 버스 마스터 장치에 의해 요청된 액세스 타입과 전송이 이루어지는 슬롯에 있는 SIMM의 타입의 비교를 수행하는 것이다.
적절한 전송은 이것에 의해서 검증된다. 만약 전송타입이 VCONFIG 레지스터에 의해 특정된 것으로서 슬롯의 SIMM 타입에 대해 부적절한다면(예컨대, DSIMM을 포함하는 슬롯에 대한 VRAM 전송), 슬롯 에러는 검출되고, EMC는 다중프로세서 버스 마스터 장치에 결합된 액세스 에러 신호 라인을 어써트한다.
그런식으로, 만약 잘못된 프로세스가 VSIMM에 대한 DRAM 전송 또는 VRAM 전송 또는 DRAM에 대한 비디오 I/O 전송을 실행시도한다면, 슬롯 에러는 일어날 것이다. 슬롯 에러가 폴트 상태 레지스터(FSR)에 등록되고 전송은 다중프로세서 버스 마스터 장치에 의해 중단된다.
EMC는 SIMM에 대한 기록을 제어한다.
기록될 데이타가 한 로우의 메모리 모듈을 따라 연속해서 정렬되는 것은 EMC가 결정할 때, EMC는 불필요하게 남아있는 로우 어드레스 스트로브(RAS) 신호를 제거한다. 이것을 함으로써, EMC는 프로세서의 총 부하를 감소시키고 메모리 모듈 버스를 통해 데이타를 기록할 필요가 있는 클럭 사이클의 수를 감소시킨다.
보통 DRAM 전송은 RAS 사전충전 사이클(3개의 클럭 사이클동안 RAS를 디어써트하는 것과 관련된)을 요구한다. 그러나, 만약 연속적인 전송이 동일 로우에서 있다면, RAS를 디어써트할 필요가 없으며, 3개의 클럭 사이클 사전충전을 실행한다. EMC는 간단히 RAS를 억제할 수 있고 3개의 클럭 사이클 사전충전을 실행한다. 그러므로, 만약 기록될 일련의 DRAM 어드레스 위치가 로우 배열이라면, EMC는 연속적인 어드레스 로우 어드레스 스트로브(RAS) 신호를 제거한다.
많은 전송이 같은 로우 경계에서 이루어지는, 특히 VRAM의 전송시, 이런 경우들이 있다. EMC는 다음 전송이 로우 배열인지 결정하기 위해 연속적인 전송을 비교하는 어드레스 비교기를 갖는다. 만약, 로우 배열이 있다면, 다음 전송은 이전 전송의 뒤를 따르게 된다. 그경우, RAS는 변하지 않으며 컬럼 어드레스 스트로브(CAS)는 전송이 그 로우의 한 컬럼에서 다음 컬럼까지 이루어지는 신호에 사용된다.
연속적인 어드레스 RAS 사이클을 제거하는 것은 EMC가 퍼포먼스를 증가시키게 한다. 그러나, 본 발명의 일실시예에서, 저장된 3개의 클럭 사이클 보다는 단지 하나의 클록이 저장된다.
이 실시예에서, 저장된 것은 사전충전 시간이 아니라 EMC내의 상태 기계를 재중재하는데 필요한 시간이다.
이론적으로 프로세스는 아주 단순하며, EMC는 단지 전송이 이루어지고 있는 어드레스만 비교하고 전송 어드레스가 한 로우에서 다른 로우로 변화하지 않는한 사전충전 사이클을 억제한다.
그러나, 문제는 로우 경계가 불필요하게 일정치 않다는 것이다.
그러므로 DRAM에서, 어드레스가 주위로 시프트되는 많은 로우가 있게된다.
더욱이, 각 슬롯은 몇몇 타입의 DRAM중 하나를 포함할 수 있으며, 각 슬롯은 포함하고 있는 DRAM 타입에 따라 다르게 프로그램될 수 있다. 각 전송 타입에 대한 로우 경계 및 각 슬롯이 프로그램되는 방법은 상태 기계의 기능으로서 정의된다. 어떤 타입의 전송이 이루어지는지에 의존하며, 어떤 타입의 장치로 전송이 되는지에 의존하는 EMC 상태 기계는 기록된 어떤 비트가 같은 로우에 상주하는지를 결정한다.
제7도를 참조하면, 일실시예의 다양한 SIMM 구성에 대한 로우 배열을 설명한다. 즉, 제7도를 로우 어드레스가 다른 SIMM 장치중에서 어떻게 다른지를 나타낸다. 예컨대, 4MB VRAM과 64MB DRAM SIMM 사이의 비교는 두 장치에 대한 로우 어드레스가 매우 유사한다는 것을 나타낸다. 두 SIMM 사이의 유일한 차이는 64MB DRAM이 4MB VRAM은 갖지않은 부가 비트를 갖는다는 것이다.
이경우, 64MB DRAM의 부가 비트가 무시될 수 있기 때문에 두 타입의 SIMM에 대한 어드레스를 위해 로우 전이를 계산할 때 어떤 문제도 없게된다.
그러나, 다른 SIMM에 대한, 메모리 어드레스 정의는 근본적으로 다르다.
제8(a)-(c)도와 관련해서 이하에서 설명되는 것처럼 제7도가 기본적으로 3개의 다른 타입의 비디오 버퍼를 설명하지만, 평면 비디오 전송에서 어드레스 계산은 데이타가 2배 또는 4배의 공간만큼 전개되는지 여부에 의존하며 어드레스가 실제 1배 또는 2배 시프트되기 때문에 보다 복잡하다. 그러므로, 어드레스는 16비트의 화소에 대해 한번 시프트되고 32비트 화소에 대해서는 2번 시프트된다.
제8(a)-(c)도를 참고하면, EMC는 몇몇 특정 포맷중 하나에서 다른 특정 포맷으로 데이타 전송을 번역하여 다중프로세서 및 메모리 모듈 버스가 효율적으로 활용되게 하며 프로세어의 총 부하가 경감되게 한다.
비디오 데이타 전송에 있어서, EMC의 다중 데이타 포맷 능력은 비디오 데이타가 압축된 포맷으로 다중프로세서 버스를 통해 EMC로 전송되게 한다.
EMC는 메모리 모듈에 저장되기전 압축된 비디오 데이타를 전개한다.
그후 데이타가 검색될 때, EMC는 데이타를 다중프로세서 버스를 통해 요청하는 프로세서에 보내기전에 다시 압축한다. 다중프로세서를 통해 전송될 데이타 양이 감소될 뿐만 아니라, 프로세서의 총 부하도 프로세서가 비디오 데이타를 저장하기 위해 판독-수정-기록 동작을 실행할 필요가 없기 때문에 경감된다.
본 발명의 일실시예에서, 비디오 전송은 “청키” 또는 “평면”전송으로 포맷되어서 실행될 수 있다. 청키 전송은 기본적으로 기본 화소 전송이다.
즉, 많은 화소가 간단히 표시될 때, DRAM에 대한 메모리 전송을 실행하는 것처럼 VRAM에 대한 청키 전송을 실행할 것이다.
전형적인 풀 칼라 기계는 32비트 화소를 갖는다.
EMC의 일 실시예는 32비트 화소 전송이 최적화되는 동작을 지원한다.
제8(a)도를 참고하면, 전형적인 칼라 화소가 묘사되어 있다. 전형적인 32비트 화소는 4개의 8비트 필드를 갖는다(청색(B), 녹색(G), 적색(R) 및 윈도우 ID(X)).
윈도우 ID 필드는 디스플레이상에 주어진 윈도우의 소정 특성에 근거를 둔 화소마다의 기준으로 각각의 화소를 수정하는데 쓰인다.
이런 화소 수정은 VISMM 프레임 버퍼 자체에 의해서 실행된다.
(X), (B), (G) 및 (R)은 화소의 윈도우 ID 값(X)에 의존하는 칼라 맵에 입력으로서 또한 개별적으로 사용된다는 것에 주목하라.
청키 전송에 있어서, 이런 4개의 필드는 전송에 대해 다른 필드이다.
32비트 화소의 4개 필드는 VRAM에 할당된 메모리의 단순한 다른 필드이다. 그러므로, 만약 디스플레이될 화소의 적색부를 낮추길 원한다면, (R) 필드를 감소시킬 것이다. 반대로 화소에 청색을 더욱 부가하길 원한다면, (B) 필드 값을 증가시킬 것이다. 또한 만약 (X) 필드 값이 변한다면, VSIMM 프레임 버퍼의 ASIC으로 프로그램된 특성에 기초를 둔 각각의 화소를 변화시킬 것이다.
청키 전송에 있어서, 전체 32 비트 화소 블록은 전송된다. 그러므로, 청키 전송은 DRAM으로의 통상의 워드 전송이 그러는 것처럼 실행된다. 그러나, 본 발명에서, BGR 전송이라 불리는 청키 전송의 변형이 있다. BGR 전송은 동일한 윈도우 ID를 유지하길 원할 때 그러나 화소의 칼라를 바꾸길 원할 때 사용된다. 표준 청키 전송같지 않게, BGR 전송은 화소의 세 BGR 요소를 단지 갱신하고 윈도우 ID(X) 값에 영향받지 않는다.
제8(b)도를 참고하면, 표준 청키 BGR 청키 전송의 예가 묘사되어 있다. 제8(b)도의 예에서, 기록될 화소의 전송전의 값이 YABC인 경우에 있어서, 전송전 화소의 (X)값은 Y이고 (B), (G) 및 (R) 요소 값은 각각 A, B 및 C이다.
만약 화소의 값이 표준 청키 전송에서 ZDEF(즉, 화소의 (X)값이 Z이고 (B), (G) 및 (R) 요소값이 각각 D, E 및 F이다)를 기록함으로써 갱신된다면, 화소의 새 값은 ZDEF일 것이다. 그러나 BGR 청키 전송에서 만약 화소의 값이 ZDFE를 기록함으로써 갱신된다면, 값(Y)의 윈도우 ID 부분은 갱신되지 않을 것이다.
그러므로, BGR 청키 전송후, 화소는 YDFE 값을 가질 것이다(즉, 칼라는 다르지만 동일한 윈도우 ID를 갖는다).
BGR 청키의 특징은 프로세서에 대해 소프트웨어적으로 많은 계산시간을 줄인다는 것이다. 왜냐하면, 그렇지 않다면, 프로세서는 새로운 값(ZDFE)을 오래된 값(YABC)에 마스크하기 위해서 판독-수정-기록 동작을 실행하여야만 하기 때문이다.
즉, 프로세서는 오래된 윈도우 ID 값이 무엇인지를 결정하기 위해서 화소의 오래된 값을 실제로 판독하여야만 한다.
프로세서는 오래된 값(YABC)을 (B), (G) 및 (R) 필드를 갱신하고자 하는 새로운 값(ZDFE)에 마스크하며 결국 최종결과(YDFE)를 역행해서 기록된다. 그러므로, 청키 BGR 전송은 많은 프로세서의 퍼포먼스가 축적되게 하며 다중프로세서 버스를 통해 전송될 데이타 양을 또한 감소시킴으로써 그 활용을 효율적으로 증가시킨다.
윈도우 ID 필드가 청키 BGR 동작에서 변화하지 않기 때문에 데이타 압축이 가능하게 되며 그결과 32비트의 전송이 아니라 단지 24비트의 전송이 이루어진다. 그러나, 본 발명의 일실시예에서, BGR 청키 모드에는 어떤 압축도 없다. 이것은 이렇게 하는 것이 갱신되어지는 필드수가 짝수(4)가 아니라 홀수(3)로 되기 때문이다. 여전히, BGR 전송 방안은 한번에 새 바이트만을 전송하는 것보다 빠르고 또한 판독-수정-기록 동작을 실행하는 것보다 빠르다.
청키 전송이 기본적으로 표준 데이타 전송일 때, 한편 “평면”전송은 압축 및 재압축을 사용한다. 제8(a)도를 다시 참조하면, 32비트 XBGR 화소 포맷 뿐만 아니라 16비트 XC 화소 포맷도 있다.
전형적인 16비트 화소에는 32비트로 포맷된 화소에서 (X) 필드와 같은 8비트 윈도우 ID 필드(X)가 있다.
그러나, 칼라 맵의 값을 표현하는 8비트 칼라 필드(C)가 또한 있다.
평면 패킹 전송을 사용하는 한예는 (X)필드만이 각 화소에 대해 갱신되어질 곳에서 일련의 8개의 연속 16비트 화소에 대한 평면 기록이다.
그경우, 프로세서는 제8(c)도에 도시된 것처럼 1개의 이중 워드 전송시 다중프로세서를 통해 X 채널 갱신 정보를 8개의 화소에 보낸다.
불변의 C 채널 정보는 전송전에 프로세서에 의해서 8개의 16비트 XC 화소 각각으로부터 분리되고 X 채널 정보만이 다중프로세서 버스를 통해 전송되는 이중 워드로 패킹된다. 각각의 이중 워드 전송은 다중프로세서 버스에서 4 사이클 걸린다.
분명히, C 채널 전송에서, 8개의 연속화소로부터 X 채널 정보를 분리하며, 화소에 대한 (C) 필드는 다중프로세서 버스를 통해 전송된다.
더욱이, 32비트 XBGR 포맷에서, 평면 전송에 의해서 더욱 큰 효율이 실현될 수 있다. 32비트 화소에는, 8개의 연속 비트 화소에 대한 X 채널 평면 전송 뿐만 아니라 B, G 및 R 채널 평면 전송이 있다. 각각의 전송에서, 8개의 화소는 다중프로세서 버스를 통해 1개의 이중 워드 전송이 갱신된 1개의 채널을 갖는다.
이것은 다중프로세서 버스에 대한 4대 1의 데이타 패킹을 32 비트 화소 기록에 제공하며, 반면에 16 비트 평면 전송은 단지 2대 1의 데이타 패킹을 제공한다.
평면 전송의 특징은 보다 많은 데이타가 보다 적은 사이클동안 다중프로세서 버스를 통해 전송되기 때문에 다중프로세서 버스에서 매우 높은 버스 활용을 제공한다. 더욱이, 프로세서 퍼포먼스는 프로세서가 판독-수정-기록 동작을 실행할 필요가 없으며 또한 데이타를 마스트하기 위해서 어떤 부가적인 계산을 할 필요가 없기 때문에 매우 증가한다.
평면 판독 동작은 단지 평면 기록 동작의 반대이다.
그러므로, 평면 판독 동작에서, 데이타는 언패킹된 포맷으로 메모리로부터 메모리 모듈 버스를 통해 판독되고 다중프로세서 버스를 통해 전송되기전 EMC에 의해서 평면 포맷으로 패킹된다. 그래서, 예컨대 프로세서는 8개의 연소 XBGR로 포맷된 32비트 화소에 대해 평면 모드로 이중 워드 X 채널 판독을 요청한다.
EMC는 메모리 모듈 버스를 통해 32 바이트를 실제로 판독해야할 필요가 있고 32 바이트 판독을 소정의 8 바이트 데이타로 패킹하며, 요청된 8 바이트를 다중프로세서 버스를 통해 프로세서에 전송된다. 평면 기록 같이, 평면 판독은 또한 프로세서의 처리부담을 경감시키며 다중프로세서 버스에 대한 버스 효율을 증가시킨다.
EMC는 비-비디오 데이타에 대해서는 다른 포맷 번역을 실행한다. 비-비디오 데이타에 대하여, EMC는 데이타를 SIMM에 기록하기전 에러 정정 체크 비트를 데이타에 부가한다. EMC는 정정 데이타가 메모리 모듈로부터 검색되었는지 검증하기 위해 체크 비트를 사용한다.
EMC는 EMC가 니블 경제에서 에러를 검출하도록 하며 또한 단일 비트 에러를 정정하도록 하는 에러 검출 및 정정 메카니즘을 사용한다. EMC에 에러 검룩 기능성을 둠으로써 다중프로세서 버스를 통해 전송될 데이타 양은 감소되고 프로세서는 에러 검출 및 정정 알고리즘을 적용하는데 연관된 총 부하를 경감시킨다.
EMC는 에러 정정 코드(ECC) 방안 수단을 갖추고 있다.
이 방안은 단일-비트 에러 정정--이중 비트 에러 검출--단일 버스트(니블) 에러 검출 코드(SEC-DED-SbED 코드)를 기초로 한다(IEEE 컴퓨터 처리 0018-9340/84/0800-07357501.00 (1984), 시게오 카네다에 의한 “메모리 시스템 응용에 대한 오드-웨이트-컬럼 SEC--DED--SbED 코드 클래스”의 제목의 논문 참조).
본 발명의 일실시예에 구현된 카네다(Kaneda) 코드는 단일-비트 에러 정정--이중-비트 에러 검출 및 4비트 에러 검출 방안이다. 만일 3비트의 에러가 있는 경우에 카네다 코드는 니블 경제에서 일어나는한 검출될 수 있다.
그러나, 카네다 ECC 방안은 니블 경계에서 모든 3 및 4비트 에러를 검출할 수 있다. 카네다 ECC 방안은 칩 레벨 에러 검출을 최적화한다. 카네다 ECC 방안을 사용하는 큰 잇점은 니블 경계에서 에러를 검출할 수 있다는데 있다. 니블은 4 비트이다. 그러므로 본 발명의 일실시예에서 니블은 DRAM 상의 단일 메모리 위치와 같은 폭을 갖는다. 대부분의 ECC 방안은 하나의 에러 비트만을 검출할 수 있고 니블 경계에서 에러를 검출할수 없지만, 카네다 ECC 방안은 어느 단일 DRAM 칩의 전체 고장을 검출할 수 있다.
그러므로, 만약 전체 DRAM 칩이 잘못 작동된다면, 다른 방안은 여전히 양호한 것으로서 검출할 수 있지만 카네다 ECC 방안은 칩의 잘못된 동작을 검출할 것이다.
고장 신드롬이 EMC의 고장 상태 레지스터(FSR)에 래치된다면, 고장 신드롬은 단일 비트 에러 위치 또는 다중 비트 에러 타입을 결정하기 위해서 256 앤트리 신드롬 테이블로의 인덱스로서 시스템 소프트웨어에 의해서 사용될 수 있다.
신드롬 디코드 테이블은 제9도에 도시되어 있다.
EMC는 또한 카네다 ECC 방안에 의해 사용되는 여분의 비트를 판독 및 기록하게 함으로써 그 이상의 진단 능력을 제공한다. DRAM에 저장될 데이타(8바이트 또는 64비트)의 매 라인에는 체크 비트의 대응 바이트(8비트)가 있다.
체크 비트는 EMC와 SIMM 사이의 데이타의 완전성을 보장하는데 사용된다. 본발명의 일실시예에서, 다중프로세서 버스는 단지 64 비트(8 바이트)의 폭이다. 그러므로, 체크 비트가 메모리 모듈 버스를 통해 판독되고 대응 데이타 라인의 정확성을 검증하기 위해서 EMC의 ECC 방안에 의해 사용될 때, 체크 비트는 EMC에 의해서 데이타 라인으로부터 분리된다.
계속해서, DRAM 판독동작동안, 프로세서에 의해 데이타 라인에 원래 기록된 데이타의 64비트만이 EMC에 의해서 다중프로세서 버스를 통해 프로세서로 다시 전송된다. 그러나 본 발명의 ECC 방안의 다른 특징은 체크 비트 값의 제어가 기록되게 함으로써 부가의 진단 능력을 제공한다는 것이다.
그러므로, DRAM 라인의 체크 비트를 실제 판독하고 기록할 수 있다. 이것에 의해서 판독 및 기록 동작이 적절히 가능하는지 보장하고자 기계를 테스트할 수 있다. 만약 고장이 검출되면, 이 특징은 이 고장을 분리할 수 있게 한다.
EMC는 메모리 라인(체크 비트 바이트를 포함하는)에서 정보를 기록하고 판독하며 DSIMM의 고장을 검출하기 위해서 체크 비트 바이트 정보를 사용한다.
그러므로, EMC는 데이타 또는 체크 비트에서 고장을 검출할 수 있다.
고장을 발견할 때, 고장은 제어 상태 레지스터에 기입된다.
EMC는 일련의 진단 테스트를 갖는다.
소프트웨어 진단이 문제를 고립시키고자 할 때, 하드 비트 에러 또는 소프트 비트 에러가 있는지 여부를 결정하기 위해 체크 비트를 판독하고 기록할 것이다. 이런 특징으로, EMC는 메모리 라인의 64 비트 데이타의 풀 테스팅을 실행할 수 있는 것처럼, DSIMM의 메모리 라인의 8개 체크 비트 위치의 풀테스팅을 실제로 실행할 수 있다.
DRAM 라인의 체크 비트 부분에 기록될 값을 저장하는 제어 상태 레지스터에는 한 바이트와 이 부분으로부터 판독된 값을 저장하는 다른 바이트가 있다. 그러므로, ECC에 의해서 사용되는 CSR에 2개의 바이트가 있으며, 하나는 한 라인의 체크 비트 부분에 기록하기 위한 것이고, 하나는 그 부분으로부터 판독하기 위한 것이다.
본 발명의 일실시예에서, 기록 동작에 대한 ECC 방안을 바꿀 수 있는 어떤 방안도 없다. EMC는 DRAM 라인의 체크 비트 부에 ECC 비트를 항상 기록할 것이다.
그러나, 본 발명의 일실시예에서, DRAM 라인에 저장하기 위한 통상의 ECC 모드 뿐만 아니라, 단일 비트(DMODE 비트)를 세트하는 프로세서에 의해서 들어가는 ECC 진단 모드가 있다. EMC가 진단 모드에 놓여질 때, EMC는 ECC 방안에 의해서 DRAM 라인의 체크 비트 바이트에서 발생된 체크 비트의 기록을 정지시켜 오히려 EMC의 8비트 레지스터(SYNCH CB)에 저장된 값을 기록한다.
SYNCH CB 체크 비트는 기록용이며, 이들이 다시 판독될 때 비트는 고장 상태 레지스터에 저장된다. 본 발명의 일실시예에서, 체크 비트는 다시 판독되며, 그러나 자동적으로 비교되지 않는다. 비교를 실행하는 소프트웨어가 남아있다.
DMODE 특징은 체크 비트를 관찰할 수 있게 하며 알려진 값으로 세트하게 한다. DMODE 특징이 존재하지 않는다면, 체크 비트를 세트할 수 없다.
왜냐하면, 보통 체크 비트는 DRAM 라인의 대응부에 저장된 데이타 값에 근거하는 코딩 방안에 따라 세트되기 때문이다.
비디오 입/출력(V I/O) 포트를 갖는 비디오 메모리 모듈에 대하여, EMC는 다중 프로세서 버스로부터 수신하는 V I/O 신호를 모듈 버스의 능력을 활용하는 V I/O 신호로 번역한다. 제10도를 참조하면, 복수의 VSIMM(132)과 EMC(20)가 메모리 모듈 버스(70)에 대해서 결합된 것이 도시되어 있다.
그러므로, EMC(20)는 비디오 I/O에 대한 전송을 또한 제어할 수 있다. 이전의 청키 및 평면 전송 예에서, 청키 및 평면 전송은 실제로 RAM(비디오 RAM)의 전송이다.
그러나, VSIMM(13)은 실제 2개의 비디오 I/O 포트를 갖는다.
제1비디오 RAM 포트(133)는 EMC가 비디오 데이타를 기록하며 판독하는 포트이다. EMC는 제2포트(140)에 직접 액세스할 수 없다.
제2포트(140)는 비디오 데이타가 모니터(도시안됨) 또는 포트에 부착된 다른 표시 장치에 보내질 수 있는 디스플레이 포트이다.
비디오 I/O에 있어서, 비디오 RAM을 지원하기 위해 VSIMM(132)상에 몇몇 장치가 있다. 그러므로, VSIMM이 VRAM(134)의 뱅크 대부분을 갖지만 또한 비디오 버퍼 칩(VBC)(135)을 가지며 다른 장치는 디스플레이 인터페이스(136)로 구성된다.
VBC(135)는 VSIMM(132) 장치가 EMC(20)로부터 무관하게 하기 위해서 3개의 동작을 동기화한다. 먼저, VBC(135)는 VSIMM(132)에 있는 VRAM(134)에 대한 리플레쉬를 제어할 수 있다. 두번째로, VBC(135)는 메모리 모듈 버스(70)상의 부하를 감소시키기 위해서 메모리 모듈 버스(70)로부터 제어신호를 실제 버퍼한다.
세번째로, VBC(135)는 VSIMM(132)에 대한 재로드 전송을 제어한다.
즉, VSIMM(132)이 이용되고 프레임 버퍼가 VRAM의 직렬포트 메모리 라인의 끝에 있을 때, 재로드 전송은 프레임 버퍼가 디스플레이할 다음 VRAM 직렬 포트 메모리 라인을 수신할 수 있도록 어드레스 포인터를 갱신한다.
VBC(135)가 VRAM(134)의 리플레쉬를 국부적으로 제어하게 하는 이점은 그렇게 하는 것이 EMC(20)가 리플레쉬를 VSIMM(132)로 제공해야만 하는 것은 경감한다든 것이다. 이것은 EMC(20)가 리플레쉬 말고도 다른 기능을 수행하는 것이 자유롭다는 것이다. 다른 이점은 EMC(20)와 VSIMM(132) 사이에 메모리 버스(70)를 통해 어떤 리플레쉬 명령도 전송되지 않는다는 것이다.
그러므로, VSIMM(132)에 위치하는 VBC(135)를 가짐은 메모리 버스(70)를 통해 통과 되어야만 하는 정보의 양을 또한 감소시키며 이것에 의해서 메모리 버스(70)는 다른 신호를 전송하는데 사용되는 것이 자유롭게 된다.
본 발명의 일실시예에서, EMC(20)는 VSIMM(132)에 위치한 VRAM(134)의 리플레쉬를 수행하기 위해서 VBC(135)의 로컬 리플레쉬 기능을 무효로 할 수 있다.
그러나, 일반적으로, 상기 이유에 대하여 VRAM(134)의 리플레쉬가 VSIMM(132)상의 VBC(135)에 의해서 국부적으로 제어된다면 더 좋은 것이다. 그러므로, 만약 EMC(20)가 아닌 VBC(135)가 VSIMM(132)상의 VRAM을 리플레쉬하고 EMC(20)에 의해서 또한 액세스될 필요가 있는 다른 SIMM가 이용가능하다면, EMC(20)는 제1 SIMM이 독립해서 리플레쉬되고 있는동안 다른 SIMM을 액세스할 수 있다.
본 발명의 방법이 현재 바람직하며 선택적인 실시예로 기재되었다 할지라도, 본 기술의 숙련자에게는 본 발명의 방법이 기재된 실시예로 제한되지 않는다는 것을 인식할 것이다. 본 발명의 방법은 첨부된 청구항의 정신 및 범위내에서 수정 및 변경하여 실시될 수 있다.
따라서 명세서 및 도면은 제한된 의미보다는 예시적인 것으로서 여겨져야 한다.

Claims (36)

  1. 제1과 제1 버스 및 상기 제1과 제2 버스 사이에 결합된 메모리 제어기로 구성되며, 적어도 하나의 마스터 장치가 상기 제1버스와 결합되고 적어도 하나의 메모리 장치가 상기 제2버스와 결합되는 컴퓨터 시스템에 있어서, 적어도 하나의 데이타 저장 메모리 위치로 구성되며, 데이타 큐 이용가능상태와 데이타 큐 풀 상태를 가지고 있어 그결과 상기 데이타 큐 이용가능상태에 있을때는 적어도 하나의 데이타를 받아들일 수 있으며 또한 상기 데이타 큐 풀 상태에 있을 때는 데이타를 받아들일 수 없게 되는 데이타 큐; 적어도 하나의 어드레스 저장 메모리 위치로 구성되며, 어드레스 큐 이용가능 상태와 어드레스 큐 풀 상태를 가지고 있어 그결과 상기 어드레스 큐 이용가능 상태에 있을 때는 적어도 하나의 어드레스를 받아들일 수 있으며 또한 상기 어드레스 큐 풀 상태에 있을 때는 어드레스를 받아들일 수 없게 되는 어드레스 큐; 및 상기 데이타 및 어드레스 큐를 제어하며, 상기 데이타 및 어드레스 큐와 결합되고, 더욱이 상기 제1버스 및 제2버스와 결합되어 그결과 상기 제1마스터 장치가 상기 제1메모리 장치의 제1어드레스로 제1데이타의 기록동작을 수행하게할 상기 메모리 제어기에 신호를 낼 때는 상기 데이타 및 어드레스 큐의 상태를 확인하게 되는 큐 제어수단으로 구성되며, 만약 상기 어드레스 큐가 상기 어드레스 큐 풀 상태에 있거나 또는 상기 데이타 큐가 상기 데이타 큐 풀 상태에 있다면, 상기 큐 제어수단은 상기 기록동작을 연기하기 위해 상기 제1마스터 장치에 신호를 내며, 만약 상기 어드레스 큐가 상기 어드레스 큐 이용가능상태에 있거나 또는 상기 데이타 큐가 상기 데이타 큐 이용가능상태에 있다면, 상기 큐 제어수단은 상기 제1데이타를 상기 데이타 큐에 전송하기 위해 또한 상기 제1어드레스를 상기 어드레스 큐에 제공하기 위해 상기 제1마스터 장치에 신호를 내고, 상기 큐 제어수단이 확인할 때 상기 제1메모리 장치는 상기 제1어드레스에서 상기 제1데이타를 받아들일 수 있고 상기 큐 제어수단은 상기 데이타 큐에 저장된 상기 제1데이타가 상기 제1메모리 장치의 상기 제1어드레스에 기록되게 하는 것을 특징으로 하는 메모리 제어기.
  2. 제1과 제2버스 및 상기 제1과 제2버스 사이에 결합된 메모리 제어기로 구성되며, 적어도 하나의 마스터 장치가 상기 제1버스와 결합되고 적어도 하나의 메모리 장치가 상기 제2버스와 결합되며, 상기 메모리 장치가 한 세트의 리플레쉬 타입중 하나의 리플레쉬 타입을 갖게하는 컴퓨터 시스템에 있어서, 상기 제2버스에 결합된 상기 각각의 적어도 하나의 메모리 장치의 리플레쉬 타입을 가리키는 수단; 복수의 리플레쉬 모드를 가지며, 리플레쉬 동작을 수행하는 수단; 및 리플레쉬 동작을 수행하는 상기 수단을 제어하며, 리플레쉬 동작을 수행하는 상기 수단과 상기 각각의 적어도 하나의 메모리 장치의 리플레쉬 타입을 가리키는 상기 수단 사이에 결합되어 제어하며, 상기 각각의 적어도 하나의 메모리 장치의 리플레쉬 타입을 가리키는 상기 수단에 의해 지정된 상기 각각의 적어도 하나의 메모리 장치의 리플레쉬 타입에 의존하는 상기 리플레쉬 모드중 하나의 리플레쉬 동작을 수행하는 상기 수단에 놓여져 제어하는 수단으로 구성되는 것을 특징으로 하는 메모리 제어기.
  3. 제1과 제2버스 및 상기 제1과 제2버스 사이에 결합된 메모리 제어기로 구성되고, 적어도 하나의 마스터 장치가 상기 제1버스와 결합되며 적어도 하나의 메모리 장치가 상기 제2버스와 결합되고, 상기 메모리 장치가 비디오 및 비-비디오 데이타 타입으로 구성되는 한 세트의 데이타 타입중 하나의 데이타 타입을 갖게 되는 컴퓨터 시스템에 있어서, 상기 제2버스와 결합된 상기 각각의 메모리 장치의 데이타 타입을 가리키는 수단; 특정 마스터 장치가 상기 각각의 메모리 장치의 특정 메모리 장치를 액세스 한다는 것을 나타낼 때 상기 적어도 하나의 마스터 장치의 특정 마스터 장치에 의해서 상기 각각의 메모리 장치의 액세스를 제어하며, 복수의 모드를 갖는 액세스 제어수단; 및 상기 액세스 제어수단을 제어하며, 상기 액세스 제어수단과 상기 각각의 메모리 장치의 데이타 타입을 가리키는 상기 수단 사이에 결합되어 제어하며, 상기 각각의 메모리 장치의 데이타 타입을 가리키는 상기 수단에 의해서 지정되어 액세스되는 상기 특정 메모리 장치의 데이타 타입에 의존하는 상기 액세스 모드중 하나에 상기 액세스 제어수단을 두어 제어하는 수단으로 구성되는 것을 특징으로 하는 메모리 제어기.
  4. 제3항에 있어서, 상기 특정 마스터 장치에 의한 각각의 액세스는 대응 액세스 타입을 가지며 상기 각각의 액세스 타입은 상기 데이타 타입의 특정 데이타 타입에 대해 적합하거나 또는 부적합하며, 상기 제1버스와 결합하고 상기 각각의 메모리 장치의 데이타 타입을 가리키는 상기 수단과 결합하며, 만약 상기 특정 마스터 장치에 의해서 지정된 상기 액세스의 액세스 타입이 상기 각각의 메모리 장치의 데이타 타입을 가리키는 상기 수단에 의해서 지정된 상기 특정의 메모리 장치의 데이타 타입에 대해 적합하지 않는다면 슬롯 에러를 가리키는 슬롯 에러검출수단으로 더욱 구성되는 것을 특징으로 하는 메모리 제어기.
  5. 제3항에 있어서, 액세스될 상기 특정 메모리 장치는 복수의 메모리 로우로 구성되며, 상기 특정 마스터 장치에 의한 각각의 액세스는 기록동작인 제1액세스 타입으로 구성되는 대응 액세스 타입을 가지며, 상기 기록동작은 로우 어드레스 스트로브 페이즈를 가지며, 상기 액세스 제어수단과 결합되고 상기 기록동작동안 제1의 상기 메모리 로우로부터 제2의 상기 메모리 로우까지의 전이를 검출하는 로우 전이 검출수단; 및 상기 액세스 제어수단과 상기 로우 전이 검출수단에 결합되고 만약 상기 로우 전이 검출수단이 상기 로우 전이를 검출못한다면 상기 기록동작동안 상기 로우 어드레스 스트로브를 억제하는 로우 어드레스 스트로브 억제수단으로 더욱 구성되는 것을 특징으로 하는 메모리 제어기.
  6. 제1과 제2버스 및 상기 제1과 제2버스 사이에 결합된 메모리 제어기로 구성되며, 적어도 하나의 마스터 장치가 상기 제1버스와 결합되며 적어도 하나의 메모리 장치가 상기 제2버스와 결합되는 컴퓨터 시스템에 있어서, 상기 제1마스터 장치로부터 상기 제1버스를 통해 제1포맷의 액세스 명령, 어드레스 및 데이타를 수신하며, 상기 제1버스를 통해 상기 제1포맷의 상기 데이타를 상기 마스터 장치에 보내는 제1버스 인터페이스 수단; 상기 제2버스를 통해 제2포맷의 데이타를 상기 메모리 장치에 보내며, 상기 제1메모리 장치로부터 상기 제2버스를 통해 상기 제2포맷의 상기 데이타를 수신하는 제2버스 인터페이스 수단; 및 상기 제1및 제2버스 인터페이스 수단 사이에 결합되고, 상기 제1포맷의 상기 데이타를 상기 제2포맷의 상기 데이타로 변환하며, 상기 제2포맷의 상기 데이타를 상기 제1포맷의 상기 데이타로 변역하는 데이타 포맷 번역수단으로 구성되는 것을 특징으로 하는 메모리 제어기.
  7. 제6항에 있어서, 상기 제1포맷의 상기 데이타의 각 데이타는 상기 제2포맷의 상기 데이타의 각 데이타와 크기가 같으며, 상기 제1포맷의 상기 데이타의 상기 각 데이타는 제1부 및 제2부로 구성되며, 상기 제2포맷의 상기 데이타의 상기 각 데이타는 제3부 및 상기 제2부로 구성되며, 상기 번역수단은 상기 제1포맷의 상기 데이타를 상기 제2포맷의 상기 데이타로 변환할 때 상기 제1부를 상기 제3부로 치환하며, 상기 번역수단은 상기 제2포맷의 상기 데이타를 상기 제1포맷의 상기 데이타로 변환할 때 상기 제2포맷의 상기 데이타를 남겨두는 것을 특징으로 하는 메모리 제어기.
  8. 제6항에 있어서, 상기 제1부의 상기 데이타는 제1부로 구성되고, 상기 제2포맷의 상기 데이타는 제2부 및 제3부로 구성되며, 상기 번역수단은 상기 제1포맷의 상기 데이타를 상기 제2포맷의 상기 데이타로 변환할 때 상기 제2부를 상기 제1부로 치환하며 상기 제2포맷의 상기 데이타를 상기 제1포맷의 상기 데이타로 변환할 때 상기 제3부를 제거하는 것을 특징으로 하는 메모리 제어기.
  9. 제8항에 있어서, 상기 제3부는 상기 제1포맷에서 제2포맷으로 변환을 위해 상기 메모리 장치에 의해서 상기 제2버스를 통해 제공되는 것을 특징으로 하는 메모리 제어기.
  10. 제8항에 있어서, 에러검출값을 발생시키며, 상기 번역수단과 결합되어 발생시키는 장치로 더욱 구성되며, 상기 제1포맷에서 상기 제2포맷으로 변환할 때 상기 제3부는 상기 제1부를 사용하여 발생시키는 상기 장치에 의해서 발생된 제1에러검출값인 것을 특징으로 하는 메모리 제어기.
  11. 제10항에 있어서, 상기 번역수단과 결합되어 발생시키는 상기 장치와 결합된 에러검출수단으로 더욱 구성되며, 상기 제2포맷의 상기 데이타를 상기 제1포맷의 상기 데이타로 변환할 때 제2에러검출값은 상기 제1부로부터 발생되며 상기 제2에러검출값은 상기 제1포맷의 상기 데이타에서 에러를 검출하기 위해 상기 에러검출수단에 의해서 상기 제3부와 비교되는 것을 특징으로 하는 메모리 제어기.
  12. 제8항에 있어서, 상기 번역수단과 결합하는 레지스터로 더욱 구성되며, 상기 제3부는 상기 제1포맷에서 제2포맷으로 변환을 위해 상기 레지스터에 의해서 상기번역수단에 제공되는 것을 특징으로 하는 메모리 제어기.
  13. 제12항에 있어서, 상기 제3부는 상기 제2포맷의 상기 데이타를 상기 제1포맷의 상기 데이타로 변환할 때 상기 번역수단에 의해서 상기 레지스터에 저장되는 것을 특징으로 하는 메모리 제어기.
  14. 제1과 제2버스 및 상기 제1과 제2버스 사이에 결합된 메모리 제어기로 구성되며, 적어도 하나의 마스터 장치는 상기 제1버스와 결합되고 적어도 하나의 메모리 장치는 상기 제2버스와 결합되며, 상기 메모리 장치는 한 세트의 리플레쉬 타입의 리플레쉬 타입을 가지며, 상기 각각의 메모리 장치는 비디오 및 비-비디오 데이타 타입으로 구성된 한 세트의 데이타 타입중 하나의 데이타 타입을 갖게되는 컴퓨터 시스템에 있어서, 상기 제2버스와 결합된 각각의 상기 적어도 하나의 메모리 장치의 리플레쉬 타입을 가리키는 수단; 복수의 리플레쉬 모드를 가지며 리플레쉬 동작을 수행하는 수단; 리플레쉬 동작을 수행하는 상기 수단을 제어하며, 리플레쉬 동작을 수행하는 상기 수단과 각각의 상기 적어도 하나의 메모리 장치의 리플레쉬 타입을 가리키는 상기 수단 사이에 결합되어 제어하며, 각각의 상기 적어도 하나의 메모리 장치의 리플레쉬 타입을 가리키는 상기 수단에 의해서 지정된 각각의 상기 적어도 하나의 메모리 장치의 리플레쉬 타입에 의존하는 상기 리플레쉬 모드중 하나로 리플레쉬 동작을 수행하는 상기 수단에 놓여 있는 상기 리플레쉬 동작을 수행하는 상기 수단을 제어하는 수단; 상기 제2버스와 결합된 각각의 상기 메모리 장치의 데이타 타입을 가리키는 수단; 상기 특정 마스터 장치가 각각의 상기 메모리 장치의 특정 메모리 장치를 액세스할 것이라고 가리킬 때 적어도 상기 하나의 마스터 장치의 특정 마스터 장치에 의해서 각각의 상기 메모리 장치에 대한 액세스를 제어하며, 복수의 액세스 모드를 갖는 액세스 제어수단; 상기 액세스 제어수단을 제어하며, 상기 액세스 제어수단과 각각은 상기 메모리 장치의 데이타 타입을 가리키는 상기 수단 사이에 결합된 상기 액세스 제어수단을 제어하며, 각각의 상기 메모리 장치의 데이타 타입을 가리키는 상기 수단에 의해서 지정되어 액세스된 상기 특정 메모리 장치의 데이타 타입에 의존하는 상기 액세스 모드중 하나에 상기 액세스 제어수단을 두어 제어하는 수단; 제1포맷의 액세스 명령, 어드레스 및 데이타를 상기 제1마스터 장치로부터 상기 제1버스를 통해 수신하며, 상기 제1포맷의 상기 데이타를 상기 제1버스를 통해 상기 마스터 장치로 보내는 제1버스 인터페이스 수단; 제2포맷의 데이타를 상기 제2버스를 통해 상기 메모리 장치로 보내며, 상기 제2포맷의 상기 데이타를 상기 제2버스를 통해 상기 제1메모리 장치로부터 수신하는 제2버스 인터페이스 수단; 상기 제1 및 제2버스 인터페이스 수단 사이에 결합되고, 상기 제1포맷의 상기 데이타를 상기 제2포맷의 상기 데이타로 변환하고 상기 제2포맷의 상기 데이타를 상기 제1포맷의 상기 데이타로 변역하는 데이타 포맷 변역수단; 적어도 하나의 데이타 저장 메모리 위치로 구성되며, 데이타 큐 이용가능상태와 데이타 큐 풀 상태를 가짐으로 인해 그결과 상기 데이타 큐 이용가능한 상태에 있을 때는 적어도 하나의 데이타를 받아들일 수 있으며 상기 데이타 큐 풀 상태에 있을 때는 데이타를 받아들일 수 없게되는 데이타 큐; 적어도 하나의 어드레스 저장 메모리 위치로 구성되며, 어드레스 큐 이용가능 상태와 어드레스 큐 풀 상태를 가짐으로 인해 그결과 상기 어드레스 큐 이용가능 상태에 있을 때는 적어도 하나의 어드레스를 받아들일 수 있으며 상기 어드레스 큐 풀 상태에 있을 때는 어드레스를 받아들일 수 없게되는 어드레스 큐; 및 상기 데이타 및 어드레스 큐를 제어하며, 상기 데이타 및 어드레스 큐와 결합되고, 더욱이 상기 제1버스 및 제2버스와 결합되어 그결과 상기 제1마스터 장치가 상기 제1메모리 장치의 제1어드레스로 제1데이타의 기록동작을 수행하게 되는 상기 메모리 제어기에 신호를 낼 때 상기 데이타 및 어드레스 큐의 상태를 확인하는 큐 제어수단으로 구성되며, 만약 상기 어드레스 큐가 상기 어드레스 큐 풀 상태에 있거나 또는 상기 데이타 큐가 상기 데이타 큐 풀 상태에 있다면, 상기 큐 제어수단은 상기 기록동작을 연기하기 위해 상기 제1마스터 장치에 신호를 내며, 만약 상기 어드레스 큐가 상기 어드레스 큐 이용가능상태에 있고 상기 데이타 큐가 상기 데이타 큐 이용가능상태에 있다면, 상기 큐 제어수단은 상기 제1데이타를 상기 데이타 큐에 보내기 위해 상기 제1마스터 장치에 신호를 내며 상기 제1어드레스를 상기 어드레스 큐에 보내기 위해 상기 제1마스터 장치에 신호를 내고, 상기 큐 제어수단이 확인할 때 상기 제1메모리 장치는 상기 제1어드레스에서 상기 제1데이타를 받아들일 수 있고, 상기 큐 제어수단은 상기 데이타 큐에 저장된 상기 제1데이타가 상기 제1메모리 장치의 상기 제1어드레스에 기록되게 하는 것을 특징으로 하는 메모리 제어기.
  15. 제14항에 있어서, 상기 특정 마스터 장치에 의한 각각의 액세스는 대응 액세스 타입을 가지며 각각의 상기 액세스 타입은 상기 데이타 타입의 특정 데이타 타입에 적합하거나 또는 부적합할 수 있으며, 각각의 상기 메모리 장치의 데이타 타입을 가리키는 상기 수단과 결합되고 상기 제1버스와 결합되며, 만약 상기 특정 마스터 장치에 의해 지정된 상기 액세스의 액세스 타입이 각각의 상기 메모리 장치의 데이타 타입을 가리키는 상기 수단에 의해 지정된 상기 특정 메모리 장치의 데이타 타입에 대해 적합하지 않다면 슬롯 에러를 가리키는 슬롯 에러검출수단으로 더욱 구성되는 것을 특징으로 하는 메모리 제어기.
  16. 제14항에 있어서, 액세스될 상기 특정 메모리 장치는 복수의 메모리 로우로 구성되고, 상기 특정 마스터 장치에 의한 각각의 액세스는 기록동작인 제1액세스 타입으로 구성되는 대응 액세스 타입을 가지며 상기 기록동작은 로우 어드레스 스트로브 페이즈를 가지며, 상기 액세스 제어수단과 결합하고, 상기 기록동작중인 제1상기 메모리 로우로부터 제2상기 메모리 로우까지의 전이를 검출하는 로우 전이 검출수단; 및 상기 액세스 제어수단과 상기 로우 전이 검출수단과 결합되고, 만약 상기 로우 전이 검출수단이 상기 로우 전이를 검출하지 않는다면 상기 기록동작동안 상기 로우 어드레스 스트로브를 억제하는 로우 어드레스 스트로브 억제수단으로 더욱 구성되는 것을 특징으로 하는 메모리 제어기.
  17. 제14항에 있어서, 상기 제1포맷의 상기 데이타의 각 데이타는 상기 제2포맷의 상기 데이타의 각 데이타 크기와 동일하며, 상기 제1포맷의 상기 데이타의 각 데이타는 제1부와 제2부로 구성되고, 상기 제2포맷의 상기 데이타의 각 데이타는 제3부와 상기 제2부로 구성되며, 상기 제1부의 상기 데이타를 상기 제2포맷의 상기 데이타로 변환할 때 상기 번역수단은 상기 제1부를 상기 제3부로 대치하고 상기 제2포맷의 상기 데이타를 상기 제1포맷의 상기 데이타로 변환할 때 상기 번역수단은 상기 제2포맷으로 상기 데이타를 남겨두는 것을 특징으로 하는 메모리 제어기.
  18. 제14항에 있어서, 상기 제1부의 상기 데이타는 제1부로 구성되고, 상기 제2포맷의 상기 데이타는 제2부와 제3부로 구성되며, 상기 번역수단은 상기 제1포맷의 상기 데이타를 상기 제2포맷의 상기 데이타로 변환할 때 상기 제2부를 상기 제1부로 대치하며 상기 제2포맷의 상기 데이타를 상기 제1포맷의 상기 데이타로 변환할 때 상기 제3부를 제거하는 것을 특징으로 하는 메모리 제어기.
  19. 제18항에 있어서, 상기 제3부는 상기 제1포맷으로부터 상기 제2포맷으로 변환을 위해 상기 메모리 장치에 의해서 상기 제2버스를 통해 제공되는 것을 특징으로 하는 메모리 제어기.
  20. 제18항에 있어서, 에러검출값을 발생시키며 상기 번역수단과 결합되어 발생시키는 장치로 더욱 구성되며, 상기 제1포맷으로부터 제2포맷으로 변환할 때 상기 제3부는 상기 제1부를 사용하여 발생시키는 상기 장치에 의해 발생된 제1에러검출값인 것을 특징으로 하는 메모리 제어기.
  21. 제20항에 있어서, 발생수단 및 상기 번역수단에 결합된 에러검출수단으로 더욱 구성되며, 여기서, 상기 제2포맷의 상기 데이타로부터 상기 제1포맷의 상기 데이타로부터 상기 제1포맷의 상기 데이타로 변환할 때 제2에러검출값은 제1부로부터 발생되며 상기 제2에러검출값은 상기 제1포맷의 상기 데이타에서 에러를 검출하기 위해서 상기 에러검출수단에 의해서 상기 제3부와 비교되는 것을 특징으로 하는 메모리 제어기.
  22. 제18항에 있어서, 상기 번역수단과 결합된 레지스터로 구성되며, 여기서 상기 제3부는 상기 제1포맷으로부터 상기 제2포맷으로 변환을 위해 상기 레지스터에 의해서 상기 번역수단에 제공되는 것을 특징으로 하는 메모리 제어기.
  23. 제22항에 있어서, 상기 제3부는 상기 제2포맷의 상기 데이타로부터 상기 제1포맷의 상기 데이타로 변환될 때 상기 번역수단에 의해서 상기 레지스터에 저장되는 것을 특징으로 하는 메모리 제어기.
  24. 제1과 제2버스 및 상기 제1과 제2버스 사이에 결합된 메모리 제어기로 구성되며, 여기서 적어도 하나의 마스터 장치는 상기 제1버스와 결합되고 적어도 하나의 메모리 장치는 상기 제2버스와 결합되게 하는 컴퓨터 시스템에 있어서, 적어도 하나의 데이타 저장 메모리 위치로 구성되고, 데이타 큐 이용가능상태와 데이타 큐 풀 상태를 가지고 있어 그결과 상기 데이타 큐 이용가능상태에 있을때는 적어도 하나의 데이타를 받아들일 수 있으며 상기 데이타 큐 풀 상태에 있을 때는 데이타를 받아들일 수 없게되는 데이타 큐에 상기 메모리 제어기를 제공하는 단계; 적어도 하나의 어드레스 저장 메모리 위치로 구성되며, 어드레스 큐 이용가능상태와 어드레스 큐 풀 상태를 가지고 있어 그결과 상기 어드레스 큐 이용가능상태에 있을 때는 적어도 하나의 어드레스를 받아들일 수 있으며 상기 어드레스 큐 풀 상태에 있을 때는 어드레스를 받아들일 수 없게되는 어드레스 큐에 상기 메모리 제어기를 제공하는 단계; 및 상기 데이타 및 어드레스 큐를 제어하고, 상기 데이타 및 어드레스 큐와 결합되며, 더욱이 상기 제1과 제2버스와 결합되는 큐 제어수단을 제공하는 단계로 구성되며, 상기 제1마스터 장치가 상기 제1메모리 장치의 제1어드레스로 제1데이타의 기록동작을 수행하도록 상기 메모리 제어기에 신호를 낼 때, 상기 큐 제어수단은 상기 데이타 및 어드레스 큐의 상태를 확인하며, 만약 상기 어드레스 큐가 상기 어드레스 큐 풀 상태에 있거나 또는 상기 데이타 큐가 상기 데이타 큐 풀 상태에 있다면 상기 큐 제어수단은 상기 기록동작을 연기하기 위해 상기 제1마스터 장치에 신호를 내며, 만약 상기 어드레스 큐가 상기 어드레스 큐 이용가능상태에 있고 상기 데이타 큐가 상기 데이타 큐 이용가능상태에 있다면 상기 큐 제어수단은 상기 제1데이타를 상기 데이타 큐에 보내기 위해 상기 제1마스터 장치에 신호를 내고 상기 제1어드레스를 상기 어드레스 큐에 보내기 위해 상기 제1마스터 장치에 신호를 내며, 상기 큐 제어수단이 확인할 때 상기 제1메모리 장치는 상기 제1어드레스에서 상기 제1데이타를 받아들일 수 있으며, 상기 큐 제어수단은 상기 데이타 큐에 저장된 상기 제1데이타가 상기 제1메모리 장치의 상기 제1어드레스에 기록되게 하는 것을 특징으로 하는 상기 제1의 적어도 하나의 마스터 장치로부터 상기 적어도 하나의 메모리 장치로 데이타를 기록하는 방법.
  25. 제1과 제2버스 및 상기 제1과 제2버스 사이에 결합된 메모리 제어기로 구성되고, 적어도 하나의 마스터 장치는 상기 제1버스와 결합되고 적어도 하나의 메모리 장치는 상기 제2버스와 결합되며, 상기 메모리 장치는 한 세트의 리플레쉬 타입중 하나의 리플레쉬 타입을 갖게되는 컴퓨터 시스템에 있어서, 상기 제2버스와 결합된 상기 적어도 하나의 메모리 장치의 리플레쉬 타입을 가리키는 수단에 상기 메모리 제어기를 제공하는 단계; 복수의 리플레쉬 모드를 가지며 리플레쉬 동작을 수행하는 수단에 상기 메모리 제어기를 제공하는 단계; 리플레쉬 동작을 수행하는 상기 수단을 제어하며, 리플레쉬 동작을 수행하는 상기 수단과 각각의 상기 적어도 하나의 메모리 장치의 리플레쉬 타입을 가리키는 상기 수단 사이에 결합되어 제어하는 수단에 상기 메모리 제어기를 제공하는 단계; 및 상기 수단은 각각의 상기 적어도 하나의 메모리 장치의 리플레쉬 타입을 가리키는 상기 수단에 의해서 지정된 각각의 상기 적어도 하나의 메모리 장치의 리플레쉬 타입에 의존하여 상기 리플레쉬 모드중 하나에서의 리플레쉬 동작을 수행하는 상기 수단을 놓아 제어하는 단계로 구성되는 것을 특징으로 하는 상기 적어도 하나의 메모리 장치의 리플레쉬를 제어하는 방법.
  26. 제1과 제2버스 및 상기 제1과 제2버스 사이에 결합된 메모리 제어기로 구성되며 여기서 적어도 하나의 마스터 장치는 상기 제1버스와 결합되고 적어도 하나의 메모리 장치는 상기 제2버스와 결합되며, 각각의 상기 메모리 장치는 비디오 및 비-비디오 데이타 타입으로 구성되는 한 세트의 데이타 타입중 하나의 데이타 타입을 가지게 되는 컴퓨터 시스템에 있어서, 상기 제2버스와 결합된 각각의 상기 메모리 장치의 데이타 타입을 가리키는 수단에 상기 메모리 제어기를 제공하는 단계; 상기 특정 마스터 장치가 상기 각각의 메모리 장치의 특정 메모리 장치를 액세스하는 것을 가리킬 때 상기 적어도 하나의 마스터 장치의 특정 마스터 장치에 의해서 각각의 상기 메모리 장치에 대한 액세스를 제어하며, 복수의 액세스 모드를 갖는 액세스 제어수단에 상기 메모리 제어기를 제공하는 단계; 상기 액세스 제어수단을 제어하며, 각각의 상기 메모리 장치의 데이타 타입을 가리키는 상기 수단과 상기 액세스 제어수단 사이에 결합되어 제어하는 수단에 상기 메모리 제어기를 제공하는 단계; 및 상기 수단은 각각의 메모리 장치의 데이타 타입을 가리키는 상기 수단에 의해서 지정되는 액세스되는 상기 특정 메모리 장치의 데이타 타입에 의존하며 상기 액세스 모드중 하나에 상기 액세스 제어수단을 두어 제어하는 단계로 구성되는 것을 특징으로 하는 상기 적어도 하나의 메모리 장치를 액세스하는 방법.
  27. 제26항에 있어서, 상기 특정 마스터 장치에 의한 각 액세스는 대응 액세스 타입을 가지며, 각 상기 액세스 타입은 상기 데이타 타입의 특정 데이타 타입에 적합하거나 또는 부적합하며, 각각의 상기 메모리 장치의 데이타 타입을 가리키는 상기 수단과 결합하고 상기 제1버스와 결합하는 슬롯 에러검출수단을 제공하는 단계; 및 상기 에러검출수단은 만약 상기 특정 마스터 장치에 의해 지정된 상기 액세스의 액세스 타입이 각각의 상기 메모리 장치의 데이타 타입을 가리키는 상기 수단에 의해 지정된 상기 특정 메모리 장치의 데이타 타입에 대해 적합하지 않는다면 슬롯 에러를 가리키게 되는 단계로 더욱 구성되는 것을 특징으로 하는 방법.
  28. 제26항에 있어서, 액세스될 상기 특정 메모리 장치는 복수의 메모리 로우로 구성되며, 상기 특정 마스터 장치에 의한 각각의 액세스는 기록동작인 제1액세스 타입으로 구성되는 대응 액세스 타입을 가지며, 상기 기록동작은 로우 어드레스 스트로브 페이즈를 가지며, 상기 액세스 제어수단과 결합된 로우 전이 검출수단을 제공하는 단계; 상기 액세스 제어수단 및 상기 로우 전이 검출수단과 결합된 로우 어드레스 스트로브 억제수단을 제공하는 단계: 상기 로우 전이 검출수단은 상기 기록동작동안 제1상기 메모리 로우로부터 제2상기 메모리 로우까지의 전이를 검출하는 단계, 및 상기 로우 어드레스 스트로브 억제수단은 만약 상기 로우 전이 검출수단이 상기 로우 전이를 검출 못하면 상기 기록동작동안 상기 로우 어드레스 스트로브를 억제하는 단계로 더욱 구성되는 것을 특징으로 하는 방법.
  29. 제1버스와 제1버스 및 상기 제1버스와 제2버스 사이에 결합된 메모리 제어기로 구성되며, 적어도 하나의 마스터 장치는 상기 제1버스와 결합되고 적어도 하나의 메모리 장치는 상기 제2버스와 결합되게 되는 컴퓨터 시스템에 있어서, 상기 제1마스터 장치로부터 상기 제1버스를 통해 제1포맷의 액세스 명령, 어드레스 및 데이타를 수신하며 상기 제1버스를 통해 상기 마스터 장치로 상기 제1포맷의 상기 데이타를 보내는 제1버스 인터페이스 수단에 상기 메모리 제어기를 제공하는 단계; 상기 제2버스를 통해 상기 메모리 장치로 제2포맷의 데이타를 보내고 상기 제1메모리 장치로부터 상기 제2버스를 통해 상기 제2포맷의 상기 데이타를 수신하는 제2버스 인터페이스 수단에 상기 메모리 제어기를 제공하는 단계; 및 상기 제1과 제2버스 인터페이스 수단 사이에 결합된 데이타 포맷 번역수단에 상기 메모리 제어기를 제공하는 단계로 구성되며, 만약 상기 제1포맷의 상기 데이타가 상기 제1버스로부터 상기 제2버스로 전송된다면, 상기 번역수단은 상기 제1포맷의 상기 데이타를 상기 제2포맷의 상기 데이타로 변환하며, 만약 상기 제2포맷의 상기 데이타가 상기 제2버스로부터 상기 제1버스로 전송된다면, 상기 번역수단은 상기 제2포맷의 상기 데이타를 상기 제1포맷의 상기 데이타로 번역하는 것을 특징으로 하는 상기 제1버스와 제2버스 사이에 데이타를 전송하는 방법.
  30. 제29항에 있어서, 상기 제1포맷의 상기 데이타의 각 데이타는 상기 제2포맷의 상기 데이타의 각 데이타와 크기와 동일하며, 상기 제1포맷의 상기 데이타의 상기 각 데이타는 제1부와 제2부로 구성되며, 상기 제2포맷의 상기 데이타의 상기 각 데이타는 제3부와 상기 제2부로 구성되고, 상기 번역수단은 상기 제1포맷의 상기 데이타를 상기 제2포맷의 상기 데이타로 변환할 때 상기 제1부를 상기 제3부로 대치하는 단계; 및 상기 번역수단은 상기 제2포맷의 상기 데이타를 상기 제1포맷의 상기 데이타로 변환할 때 상기 제2포맷의 상기 데이타를 남겨두는 단계로 더욱 구성되는 것을 특징으로 하는 방법.
  31. 제29항에 있어서, 상기 제1부의 상기 데이타는 제1부로 구성되고, 상기 제2포맷의 상기 데이타는 제2부와 제3부로 구성되며, 상기 번역수단은 상기 제1포맷의 상기 데이타를 상기 제2포맷의 상기 데이타로 변환할 때 상기 제2부를 상기 제1부로 대치하는 단계; 및 상기 번역수단은 상기 제2포맷의 상기 데이타를 상기 제1포맷의 상기 데이타로 변환할 때 상기 제3부를 제거하는 단계로 더욱 구성되는 것을 특징으로 하는 방법.
  32. 제31항에 있어서, 만약 상기 번역수단이 상기 제1포맷으로부터 상기 제2포맷으로 변환하고 있다면 상기 메모리 장치는 상기 제2버스를 통해 상기 제3부를 제공하는 단계로 더욱 구성되는 것을 특징으로 하는 방법.
  33. 제31항에 있어서, 에러검출값을 발생시키며 상기 번역수단에 결합되어 발생시키는 장치에 상기 메모리 제어기를 제공하는 단계; 및 상기 제1포맷으로부터 상기 제2포맷으로 변환할 때 상기 장치는 상기 제3부로서 사용되는 제1에러검출값을 발생시키기 위해서 상기 제1부를 사용하여 발생시키는 단계로 더욱 구성되는 것을 특징으로 하는 방법.
  34. 제33항에 있어서, 상기 발생수단 및 상기 번역수단에 결합된 에러검출수단에 상기 메모리 제어기를 제공하는 단계; 상기 제2포맷의 상기 데이타로부터 상기 제1포맷의 상기 데이타로 변환할 때 발생시키는 상기 장치에 의해서 상기 제1부로부터 제2에러검출값을 발생시키는 단계; 및 상기 에러검출수단이 상기 제1포맷의 상기 데이타에서 에러를 검출하기 위해서 상기 제2에러검출값과 상기 제3부를 비교하는 단계로 더욱 구성되는 것을 특징으로 하는 방법.
  35. 제31항에 있어서, 상기 번역수단과 결합된 레지스터를 제공하는 단계; 및 상기 제1포맷으로부터 상기 제2포맷으로 변환할 때 상기 레지스터가 상기 제3부를 상기 번역수단에 제공하는 단계로 더욱 구성되는 것을 특징으로 하는 방법.
  36. 제35항에 있어서, 상기 제2포맷의 상기 데이타로부터 상기 제1포맷의 상기 데이타로 변환할 때 상기 번역수단이 상기 제3부를 상기 레지스터에 저장하는 단계로 더욱 구성되는 것을 특징으로 하는 방법.
KR1019930028234A 1992-12-22 1993-12-17 응용주문형집적회로인에러정정코드메모리제어기 KR100295074B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US99507192A 1992-12-22 1992-12-22
US995,071 1992-12-22

Publications (2)

Publication Number Publication Date
KR940015820A KR940015820A (ko) 1994-07-21
KR100295074B1 true KR100295074B1 (ko) 2001-09-17

Family

ID=25541356

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019930028234A KR100295074B1 (ko) 1992-12-22 1993-12-17 응용주문형집적회로인에러정정코드메모리제어기

Country Status (2)

Country Link
US (1) US5884067A (ko)
KR (1) KR100295074B1 (ko)

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3139392B2 (ja) * 1996-10-11 2001-02-26 日本電気株式会社 並列処理システム
US6226709B1 (en) * 1997-10-24 2001-05-01 Compaq Computer Corporation Memory refresh control system
US6338144B2 (en) 1999-02-19 2002-01-08 Sun Microsystems, Inc. Computer system providing low skew clock signals to a synchronous memory unit
US7035880B1 (en) * 1999-07-14 2006-04-25 Commvault Systems, Inc. Modular backup and retrieval system used in conjunction with a storage area network
US7389311B1 (en) * 1999-07-15 2008-06-17 Commvault Systems, Inc. Modular backup and retrieval system
US7395282B1 (en) 1999-07-15 2008-07-01 Commvault Systems, Inc. Hierarchical backup and retrieval system
US6481251B1 (en) * 1999-10-25 2002-11-19 Advanced Micro Devices, Inc. Store queue number assignment and tracking
US6523109B1 (en) 1999-10-25 2003-02-18 Advanced Micro Devices, Inc. Store queue multimatch detection
US7155481B2 (en) 2000-01-31 2006-12-26 Commvault Systems, Inc. Email attachment management in a computer system
US7003641B2 (en) 2000-01-31 2006-02-21 Commvault Systems, Inc. Logical view with granular access to exchange data managed by a modular data and storage management system
US6658436B2 (en) 2000-01-31 2003-12-02 Commvault Systems, Inc. Logical view and access to data managed by a modular data and storage management system
JP4282201B2 (ja) * 2000-03-06 2009-06-17 株式会社東芝 符号化データ記録装置
TW465784U (en) * 2000-04-26 2001-11-21 Accusys Inc Disk array system controller
US7162496B2 (en) * 2002-09-16 2007-01-09 Commvault Systems, Inc. System and method for blind media support
US6982892B2 (en) 2003-05-08 2006-01-03 Micron Technology, Inc. Apparatus and methods for a physical layout of simultaneously sub-accessible memory modules
US7206928B2 (en) * 2003-06-03 2007-04-17 Digi International Inc. System boot method
US7454569B2 (en) 2003-06-25 2008-11-18 Commvault Systems, Inc. Hierarchical system and method for performing storage operations in a computer network
WO2005050381A2 (en) * 2003-11-13 2005-06-02 Commvault Systems, Inc. Systems and methods for performing storage operations using network attached storage
US7152138B2 (en) * 2004-01-30 2006-12-19 Hewlett-Packard Development Company, L.P. System on a chip having a non-volatile imperfect memory
US7246300B1 (en) 2004-08-06 2007-07-17 Integrated Device Technology Inc. Sequential flow-control and FIFO memory devices having error detection and correction capability with diagnostic bit generation
US7275137B2 (en) 2004-10-21 2007-09-25 International Business Machines Corporation Handling of the transmit enable signal in a dynamic random access memory controller
US7543125B2 (en) * 2005-12-19 2009-06-02 Commvault Systems, Inc. System and method for performing time-flexible calendric storage operations
US8271746B1 (en) * 2006-11-03 2012-09-18 Nvidia Corporation Tiering of linear clients
US8719809B2 (en) * 2006-12-22 2014-05-06 Commvault Systems, Inc. Point in time rollback and un-installation of software
US8359437B2 (en) * 2008-05-13 2013-01-22 International Business Machines Corporation Virtual computing memory stacking
US8510628B2 (en) * 2009-11-12 2013-08-13 Micron Technology, Inc. Method and apparatuses for customizable error correction of memory
US9021198B1 (en) 2011-01-20 2015-04-28 Commvault Systems, Inc. System and method for sharing SAN storage
CN102841832B (zh) * 2011-06-24 2017-05-24 佛山慧捷电子科技有限公司 出错内存条定位方法
US8843808B2 (en) * 2011-06-30 2014-09-23 Avago Technologies General Ip (Singapore) Pte. Ltd. System and method to flag a source of data corruption in a storage subsystem using persistent source identifier bits
US10871992B2 (en) * 2018-05-30 2020-12-22 Texas Instruments Incorporated Level two first-in-first-out transmission

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4316244A (en) * 1978-11-08 1982-02-16 Data General Corporation Memory apparatus for digital computer system
US4366538A (en) * 1980-10-31 1982-12-28 Honeywell Information Systems Inc. Memory controller with queue control apparatus
US4672609A (en) * 1982-01-19 1987-06-09 Tandem Computers Incorporated Memory system with operation error detection
US4679139A (en) * 1984-05-01 1987-07-07 Canevari Timber Co., Inc. Method and system for determination of data record order based on keyfield values
US4682284A (en) * 1984-12-06 1987-07-21 American Telephone & Telegraph Co., At&T Bell Lab. Queue administration method and apparatus
JPS6226561A (ja) * 1985-07-26 1987-02-04 Toshiba Corp パ−ソナルコンピユ−タ
US5325513A (en) * 1987-02-23 1994-06-28 Kabushiki Kaisha Toshiba Apparatus for selectively accessing different memory types by storing memory correlation information in preprocessing mode and using the information in processing mode
US4899146A (en) * 1987-04-30 1990-02-06 R. R. Donnelley & Sons Company Method of and apparatus for converting digital data between data formats
US4980850A (en) * 1987-05-14 1990-12-25 Digital Equipment Corporation Automatic sizing memory system with multiplexed configuration signals at memory modules
US5261080A (en) * 1987-08-21 1993-11-09 Wang Laboratories, Inc. Matchmaker for assisting and executing the providing and conversion of data between objects in a data processing system storing data in typed objects having different data formats
US4965723A (en) * 1987-10-23 1990-10-23 Digital Equipment Corporation Bus data path control scheme
US4878166A (en) * 1987-12-15 1989-10-31 Advanced Micro Devices, Inc. Direct memory access apparatus and methods for transferring data between buses having different performance characteristics
US5185878A (en) * 1988-01-20 1993-02-09 Advanced Micro Device, Inc. Programmable cache memory as well as system incorporating same and method of operating programmable cache memory
US5301278A (en) * 1988-04-29 1994-04-05 International Business Machines Corporation Flexible dynamic memory controller
US5261074A (en) * 1988-10-03 1993-11-09 Silicon Graphics, Inc. Computer write-initiated special transferoperation
US5162788A (en) * 1989-06-16 1992-11-10 Apple Computer, Inc. Chunky planar data packing apparatus and method for a video memory
US5241642A (en) * 1989-09-28 1993-08-31 Pixel Semiconductor, Inc. Image memory controller for controlling multiple memories and method of operation
CA2045789A1 (en) * 1990-06-29 1991-12-30 Richard Lee Sites Granularity hint for translation buffer in high performance processor
US5357621A (en) * 1990-09-04 1994-10-18 Hewlett-Packard Company Serial architecture for memory module control
US5546553A (en) * 1990-09-24 1996-08-13 Texas Instruments Incorporated Multifunctional access devices, systems and methods
US5265231A (en) * 1991-02-08 1993-11-23 Thinking Machines Corporation Refresh control arrangement and a method for refreshing a plurality of random access memory banks in a memory system
US5251298A (en) * 1991-02-25 1993-10-05 Compaq Computer Corp. Method and apparatus for auxiliary pixel color management using monomap addresses which map to color pixel addresses
JP3180362B2 (ja) * 1991-04-04 2001-06-25 日本電気株式会社 情報処理装置
US5287478A (en) * 1991-08-06 1994-02-15 R-Byte, Inc. Digital data tape storage system utilizing plurality of read/write heads with system diagnostic capability
US5323489A (en) * 1991-11-14 1994-06-21 Bird Peter L Method and apparatus employing lookahead to reduce memory bank contention for decoupled operand references
US5388207A (en) * 1991-11-25 1995-02-07 Industrial Technology Research Institute Architecutre for a window-based graphics system
US5471632A (en) * 1992-01-10 1995-11-28 Digital Equipment Corporation System for transferring data between a processor and a system bus including a device which packs, unpacks, or buffers data blocks being transferred

Also Published As

Publication number Publication date
KR940015820A (ko) 1994-07-21
US5884067A (en) 1999-03-16

Similar Documents

Publication Publication Date Title
KR100295074B1 (ko) 응용주문형집적회로인에러정정코드메모리제어기
US5123099A (en) Hot standby memory copy system
US5265218A (en) Bus architecture for integrated data and video memory
US5043874A (en) Memory configuration for use with means for interfacing a system control unit for a multi-processor system with the system main memory
US5265231A (en) Refresh control arrangement and a method for refreshing a plurality of random access memory banks in a memory system
US6681293B1 (en) Method and cache-coherence system allowing purging of mid-level cache entries without purging lower-level cache entries
US5249284A (en) Method and system for maintaining data coherency between main and cache memories
JP2862948B2 (ja) 半導体記憶装置
US5471601A (en) Memory device and method for avoiding live lock of a DRAM with cache
US5367494A (en) Randomly accessible memory having time overlapping memory accesses
JP2509766B2 (ja) キャッシュメモリ交換プロトコル
US5802576A (en) Speculative cache snoop during DMA line update
JP3534822B2 (ja) キャッシュラインリプレーシング装置及び方法
US5490113A (en) Memory stream buffer
JP2717674B2 (ja) バスマスタ
JP2022153654A (ja) パーシステントメモリシステム等のデータ完全性
JPS58212694A (ja) メモリシステム
US11748034B2 (en) Signalling for heterogeneous memory systems
US11531601B2 (en) Error recovery for non-volatile memory modules
US5687393A (en) System for controlling responses to requests over a data bus between a plurality of master controllers and a slave storage controller by inserting control characters
US11137941B2 (en) Command replay for non-volatile dual inline memory modules
US5860117A (en) Apparatus and method to improve primary memory latencies using an eviction buffer to store write requests
US5987570A (en) Performing overlapping burst memory accesses and interleaved memory accesses on cache misses
US5287512A (en) Computer memory system and method for cleaning data elements
US5553270A (en) Apparatus for providing improved memory access in page mode access systems with pipelined cache access and main memory address replay

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20040331

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee