KR20040093180A - 데이터 마스크 맵핑 정보의 취득 - Google Patents

데이터 마스크 맵핑 정보의 취득 Download PDF

Info

Publication number
KR20040093180A
KR20040093180A KR10-2004-7015011A KR20047015011A KR20040093180A KR 20040093180 A KR20040093180 A KR 20040093180A KR 20047015011 A KR20047015011 A KR 20047015011A KR 20040093180 A KR20040093180 A KR 20040093180A
Authority
KR
South Korea
Prior art keywords
data
data mask
memory
mapping scheme
pattern
Prior art date
Application number
KR10-2004-7015011A
Other languages
English (en)
Other versions
KR100692343B1 (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 KR20040093180A publication Critical patent/KR20040093180A/ko
Application granted granted Critical
Publication of KR100692343B1 publication Critical patent/KR100692343B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • 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/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/161Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
    • G06F13/1626Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement by reordering requests
    • 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/04Addressing variable-length words or parts of words
    • 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/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • 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

Abstract

데이터 마스크 맵은 다양한 방식으로 저장 소자 내에 프로그래밍될 수 있다. 일 실시예에서, 데이터 마스크는 데이터 마스크 비트 또는 데이터 청크를 재순서화하기 위하여 선택 소자 내로 유선 접속될 수 있다. 다른 실시예에서, 데이터 마스크 맵은 메모리 내의 한 위치로부터 검색된다. 또 다른 실시예에서, 데이터 마스크 맵은 알고리즘을 통해 결정된다.

Description

데이터 마스크 맵핑 정보의 취득{OBTAINING DATA MASK MAPPING INFORMATION}
전형적인 컴퓨터 시스템은 메모리를 포함한다. 메모리는 프로그램 코드와 그 프로그램 코드가 필요로 하는 데이터를 기억하는 데 사용된다. 메모리는 집적 회로의 하나 이상의 보드 상에 포함될 수 있다. 통상의 경우, 메모리는 메모리 컨트롤러와 결합된다. 메모리 컨트롤러와 메모리는 핀 접속을 통하여 데이터 버스 상에서 통신을 행한다.
메모리에서 선택된 데이터에 대해 오버라이트(overwrite)가 행해지는 것을 방지하기 위해 데이터 마스크를 사용한다. 이에 따라, 메모리 컨트롤러는 특정 데이터만을 마스크하는 데이터 마스크를 사용함으로써, 메모리로의 부분적인 기입을 허용하고 있다. 데이터 마스크 비트는 하나 이상의 데이터 비트에 연관될 수 있다. 연관된 데이터 마스크는 특정 메모리 위치로의 기입은 차단시키지만, 다른 특정 메모리 위치로의 기입은 허용한다. 메모리로의 기입이 행해질 때, 마스크되어 있는 메모리 내의 선택된 데이터는 메모리에 계속 남아 있게 되지만, 마스크되어 있지 않은 선택된 데이터는 새로운 데이터로 대체된다. 메모리 컨트롤러가 데이터마스크를 사용하지 않을 경우에는, 메모리로의 부분적인 기입에는 훨씬 더 시간이 걸린다. 예를 들어, 메모리 컨트롤러는 메모리 영역 전체를 판독하여, 새로운 데이터를 이것과 병합시킨 후, 메모리 영역 전체에 다시 기입하는 것에 의해, 부분적인 기입에 근접할 수 있다.
현재, 메모리 칩들은 데이터 마스크 비트와 데이터에 대해 별개의 핀들을 사용하여 메모리 데이터 마스크를 구현하고 있다. 이는 핀 개수를 상당히 증가시킬 수 있다. 핀 개수가 증가되면, 비용, 패키지 크기, 및 일부 경우에는 다이 크기까지도 증가하게 된다. 데이터 마스크 비트와 데이터에 대해 별개의 핀들을 사용하면, 이들 맵핑을 이용한 레지스터의 프로그래밍을 제공할 수 없다.
본 발명은 일반적으로 컴퓨터 메모리 분야에 관한 것으로, 보다 상세하게는, 메모리 데이터 마스크 분야에 관한 것이다.
본 발명의 실시예들은 이하의 설명 및 이들 실시예를 예시한 첨부된 도면들을 참조함으로써 용이하게 이해할 수 있을 것이다. 본 발명의 실시예에 대한 보다 완전한 이해를 돕기 위해, 첨부된 도면에 관련하여 기술한 이하의 설명을 참조하기로 한다.
도 1은 본 발명의 일 실시예에 따른 컨트롤러를 포함한 예시적인 시스템을 도시.
도 2는 본 발명의 일 실시예에 따른 번역 논리 실시예의 개략적인 블럭도.
도 3은 본 발명의 일 실시예에 따라 데이터 마스크를 데이터 라인에 집적시킨 기입 전송의 파형을 도시.
도 4는 본 발명의 일 실시예에 따라 프로세서와 메모리 간에 인터페이스를제공하기 위한 방법을 나타내는 흐름도.
도 5는 본 발명의 일 실시예에 따라 데이터 마스크 라인을 데이터 청크(chunk) 라인에 집적시키기 위한 번역 논리의 개략적인 블럭도.
도 6은 본 발명의 일 실시예에 따라 데이터 청크에 대한 데이터 마스크의 맵핑을 변경시키기 위한 번역 논리의 개략적인 블럭도.
도 7은 본 발명의 일 실시예에 따라 메모리 컨트롤러가 그 자체를 프로그래밍하는 방법을 나타내는 흐름도.
도 8은 본 발명의 일 실시예에 따른, 데이터 청크의 데이터 마스크 비트 마스크 특정예의 특정값 예에 대한 테이블 및 개략적인 블럭도.
도 9는 본 발명의 일 실시예에 따라 다수 비트를 소자에 전송하기 위한 소자를 선택하는 멀티플렉서의 두 예시 회로도.
도 10은 본 발명의 일 실시예에 따라 데이터 마스크 비트와 데이터 청크 사이에서의 맵핑을 선택하는 멀티플렉서를 포함한 어레이를 도시.
도 11은 본 발명의 일 실시예에 따라 메모리 모듈 내의 직렬 구성 인식기(SPD)로부터 데이터 마스크 맵핑 정보를 얻기 위한 방법을 나타내는 흐름도.
도 12는 본 발명의 일 실시예에 따른, 메모리 모듈의 각 메모리 랭크에 대한 데이터 마스크 맵핑 스킴을 결정하기 위한 방법을 나타내는 흐름도.
이하의 기술에서는, 본 발명의 실시예에 대한 완전한 이해를 제공하기 위해 여러 특정 사항에 대해 상세히 기술하였지만, 이들 실시예들은 이런 특정 사항에관계없이 실행될 수 있다는 것에 주목할 필요가 있다. 또한, 본 발명의 실시예를 명료히 하기 위해 알려진 회로, 구조, 기술에 대해서는 상세히 기술하지 않았다.
다양한 실시예에서, 본 발명은 데이터 마스크 맵(data mask map)으로 레지스터(register)를 프로그래밍하는 상이한 방법들을 포함할 수 있다. 다양한 실시예는 데이터 마스크 맵의 메모리 컨트롤러로의 유선 접속, 메모리 내의 한 위치로부터의 데이터 마스크 맵의 검색, 및 소프트웨어 알고리즘에 의한 데이터 마스크 맵의 추론을 포함한다. 데이터 마스크 맵은 데이터 마스크 비트와 그들이 마스크할 데이터 청크(chunk)를 연관시킬 수 있는데, 여기서 데이터 청크는 임의의 지정된 양의 데이터일 수 있다.
도 1은 본 발명의 일 실시예에 따라, 컨트롤러(102), 프로세서(104), 메모리(108), 및 데이터 마스크가 집적되어 있는 하나 이상의 데이터 라인을 포함할 수 있는 메모리 버스(110)를 포함하는 예시적인 시스템(100)을 도시한다. 본 발명의 실시예는 시스템(100)에 관련하여 기술되었지만, 임의의 집적 회로를 포함하는 임의의 시스템에서 구현될 수 있다.
컨트롤러(102)는 예를 들면, I/O 컨트롤러 허브(ICH; 140) 및 펌웨어 허브(FWH; 170)을 포함하는 칩셋(174)의 일부일 수도 있다. 컨트롤러(102), ICH(140), FWH(170)은 각각 임의의 적절한 회로를 포함할 수 있고 일 실시예에서는 개별적인 집적 회로 칩으로 구현된다. 다른 실시예에서는 칩셋(174)이 임의의 적절한 하나 이상의 통합된 회로 장치를 포함할 수 있다.
컨트롤러(102)는 임의의 적절한 컨트롤러 아키텍처를 포함할 수 있다. 다양한 실시예에서, 시스템(100)은 하나 이상의 컨트롤러를 포함할 수 있고, 본 발명의 일 실시예에 따르면, 이 컨트롤러 중 임의의 것은 인터페이스를 제공할 수 있다. 컨트롤러(102)는 메모리 버스(110)로의 및/또는 컨트롤러(102)와 통신하는 임의의 적절한 장치 및 컴포넌트로의 임의의 적절한 링크를 제공하는 임의의 적절한 인터페이스 컨트롤러를 포함할 수 있다. 일 실시예에 대한 컨트롤러(102)는 적절한 조정, 버퍼링 및 각 인터페이스를 위한 일관된 관리를 제공할 수 있다.
컨트롤러(102)는 프로세서 버스(122)와 연결되어 프로세스 버스(122) 상의 프로세서(104)와의 인터페이스를 제공할 수 있다. 프로세서(104)는 임의의 적절한 프로세서 아키텍처를 포함할 수 있다. 다양한 실시예에서, 컴퓨터 시스템(100)은 하나 이상의 프로세서(104)를 포함할 수 있으며, 이 프로세서 중 임의의 것은 본 발명의 일 실시예에 따르는 한 세트(set)의 명령어를 수행할 수 있다. 하나 이상의 프로세서(104)는 단일 칩으로 컨트롤러(102)와 결합될 수 있다.
일 실시예에서, 컨트롤러(102)는 ICH(140)와 연결되어 허브 인터페이스를 통한 ICH(140)로의 액세스를 제공할 수 있다. ICH(140)는 컴퓨터 시스템(100)에 대하여 하나 이상의 I/O 장치 또는 주변 컴포넌트들로의 인터페이스를 제공할 수 있다. ICH(140)는 메모리 컨트롤러(102)로의 및/또는 ICH(140)와 통신하는 임의의 적절한 장치 또는 컴포넌트로의 임의의 적절한 링크를 제공하는 임의의 적절한 인터페이스 컨트롤러를 포함할 수 있다. 일 실시예에 대한 ICH(140)는 각 인터페이스에 대한 적절한 조정 및 버퍼링을 제공한다.
일 실시예에 대한 ICH(140)는 슈퍼 I/O 컨트롤러(150)를 통해 키보드(151),마우스(152), 마이크로폰(156), 스타일러스(157), 예를 들면, 하나 이상의 병렬 포트(153)를 통하는 프린터와 같은 하나 이상의 적절한 장치, 하나 이상의 직렬 포트(154)를 통하는 하나 이상의 적절한 장치, 및 플로피 디스크 드라이브(155)로의 인터페이스를 제공할 수 있다. 다른 실시예는 도시된 것보다 더 많거나 더 적거나 혹은 다른 장치 및 인터페이스를 제공할 수 있다.
ICH(140)는 FWH(170)과 연결되어 FWH(170)로의 인터페이스를 제공할 수 있다. FWH(170)는 ICH(140)로의 임의의 적절한 통신 링크를 제공하는 임의의 적절한 인터페이스 컨트롤러를 포함할 수 있다. 일 실시예에서 FWH(170)는 ICH(140)와 슈퍼 I/O 컨트롤러(150) 간의 인터페이스의 적어도 일부분을 공유할 수 있다. FWH(170)는 적절한 시스템 및/또는 비디오 BIOS 소프트웨어를 저장하는 기본 입출력 시스템(BIOS) 메모리(172)를 포함할 수 있다. BIOS 메모리(172)는 임의의 적절한 비휘발성 메모리, 예를 들면 플래쉬 메모리를 포함할 수 있다. 다른 실시예는 도시된 것보다 더 많거나 더 적거나 혹은 다른 장치 및 인터페이스를 제공할 수 있다.
컨트롤러(102)는 또한 메모리(108)에 대한 인터페이스와 연결되고 그 인터페이스를 제공할 수 있는데, 이 메모리는 메모리 시스템의 일부일 수 있다. 메모리(108)는 예를 들면, 컴퓨터 시스템(100)에서 사용될 데이터 및/또는 코드를 저장할 수 있다. 메모리(108)는 임의의 적절한 메모리, 예를 들면, RAM, 그것의 변형물, 또는 순차 메모리를 포함할 수 있다. 컨트롤러(102)는 메모리 버스(110)를 통해 메모리와 연결될 수 있다. 메모리 버스(110)는 데이터 라인, 어드레스 라인, 컨트롤 라인 또는 이러한 라인들의 멀티플렉스된 조합을 포함할 수 있는 버스를 포함할 수 있다. 데이터 버스에 집적되는 데이터 마스크는 전용 데이터 마스크 버스의 필요성을 없앨 수 있지만 연결된 장치 상의 데이터 마스크 핀에 대한 필요성을 반드시 없애는 것은 아닐 수 있다. 핀 상의 데이터 마스크 비트와 데이터 청크의 조합은 필요한 버스 라인의 개수를 줄일 수 있다. 또한 전송된 데이터 마스크 비트를 전송된 데이터 청크로 맵핑시키기 위하여, 완전히 연관적일 수도 있고 연관적이지 않을 수도 있는 데이터 마스크 맵이 구현될 수 있다.
일 실시예에 있어서, 약정 사항(stipulations)은 보다 간단한 데이터 마스크 맵 세트가 가능하게 할 수 있다. 예를 들어, 이는, 소정의 마스크 비트가 주어진 다른 데이터 비트에는 절대로 맵핑되지 않을 것이라는 시스템에 관한 주지의 규칙일 수 있다. 따라서, 그와 같은 가능성을 배제함으로써 시스템의 데이터 마스크 맵 또는 데이터 마스크 맵 세트를 축소시킬 수 있다. 또 다른 예에서, 데이터 마스크 맵은 데이터 무결성을 유지하기 위하여 데이터 마스크와 데이터 청크 간에 일-대-일 상응 관계가 존재하다는 약정 사항을 포함할 수 있다. 데이터 마스크 맵 또는 데이터 마스크 맵 세트에 포함될 수 있는 또 다른 약정 사항은 사용된 임의의 데이터 마스크 맵을 컨트롤러와 타겟(메모리) 양자 모두가 이미 알고 있을 수 있다는 것이다. 이와 같이, 데이터 마스크 맵은 메모리 벤더에게/로부터 부과된 제약 사항에 의해서 단순화될 수 있지만, 본 발명의 일 실시예는 메모리 벤더에 대해 그와 같은 제약을 부가하지 않고서도 구현될 수 있다.
일 실시예에서, 컨트롤러(102)는 공통 영역(common area)(112)을 포함한다.공통 영역(112)은 복수의 소스로부터의 데이터가 접속하는 회로, 예를 들어 버퍼일 수 있다. 프로세서(104), ICH(140) 등의 송신 장치는 데이터 마스크 맵 또는 데이터 마스크 맵 세트에 따라 재포맷된 데이터를 필요로 할 수 있다. 프로세서(104)로부터 공통 영역(112)으로 전송된 정보는 번역 논리(114)와 프로세서 인터페이스(116)를 필요로 할 것이다. 번역 논리(118)와 I/O 인터페이스(120)는, 공통 영역(112)으로부터 ICH(140)로 전달되거나, 또는 공통 영역(112)으로부터 ICH(140) 또는 ICH(140)를 통해서 전달되는 정보에 관한 번역 및 인터페이스를 지원할 수 있다.
도 1에 도시된 실시예에서는, 시스템(100) 내에서 번역 논리(114) 및 번역 논리(118)가 별도의 유닛으로 도시되어 있다. 번역 논리(114) 및 번역 논리(118)는 동일한 유닛일 수도 있고 별개의 상이한 유닛일 수도 있다. 또 다른 실시예에서는, 번역 논리(114) 및 번역 논리(118)가 프로세서(104) 및 ICH(140) 양자 모두와 결합한 단일의 번역 유닛일 수 있다. 또한, 또 다른 실시예에서는, 번역 논리(114) 및 번역 논리(118)가 공통 영역(112)으로 멀티플렉스되어 재맵핑될 수도 있다. 번역 논리(118)에서의 I/O 포맷은 번역 논리(114) 내에서의 CPU 포맷과 상이할 수 있다. 번역 논리(114) 또는 번역 논리(118) 중 하나로부터 공통 영역(112)로의 출력은 동일한 포맷, 예를 들어 DRAM 포맷 등일 수 있다.
번역 논리(114) 및/또는 번역 논리(118)는, 도 2 및 도 4에서 보다 자세히 설명되는 데이터 마스크 맵 또는 데이터 마스크 맵 세트를 포함할 수 있다. 데이터 마스크 맵 또는 데이터 마스크 맵 세트는 메모리(108) 내의 데이터 마스크 맵또는 데이터 마스크 맵 세트와 일치할 수 있다. 도 1에 도시된 실시예에서, 메모리(108)는, 예를 들어 SPD(106)와 같은 메모리의 SPD 영역에 저장될 수 있는 데이터 맵(124)을 포함할 수 있다. 또 다른 실시예에서는, 이와 같은 맵핑이 BIOS 또는 오브젝트 코드로서 저장될 수 있다. 컨트롤러(102)는 또한 상기 열거한 컴포넌트들과는 상이한 구성 및/또는 그보다 많거나 또는 그보다 적은 컴포넌트들로 구성될 수 있다.
본 발명의 일 실시예는 하드웨어, 펌웨어, 및 소프트웨어 하나 또는 이들의 조합으로 구현될 수 있다. 본 발명에 관한 또 다른 실시예는 적어도 하나의 프로세서에 의하여 판독되고 실행되어 본 명세서에 개시된 동작들을 수행하는 기계 판독가능 매체 상에 저장된 명령으로서 구현될 수 있다. 기계 판독가능 매체는 기계(예를 들어, 컴퓨터)가 판독할 수 있는 형태로 정보를 저장하거나 전송하는 임의의 메카니즘을 포함할 수 있다. 예를 들어, 기계 판독가능 매체로는 ROM, RAM, 자기 디스크 저장 매체, 광학 저장 매체, 플래시 메모리 장치, 전기, 광학, 음향, 또는 기타 형태의 전파 신호(예를 들어, 반송파, 적외선 신호, 디지털 신호 등) 등이 포함될 수 있다. 소정의 실시예에서, 시스템(100)은 도 1에 도시된 것보다 더 많은 컴포넌트들을 포함할 수도 있고 반대로 그 보다 더 적은 컴포넌트들을 포함할 수도 있다.
도 2는 본 발명의 일 실시예에 따른 번역 논리(201)의 일례에 관한 개략적 블럭도를 도시하고 있다. 번역 논리(201)는 번역 논리(114) 또는 번역 논리(118) 중 하나이거나 양자 모두일 수 있다. 번역 논리(201)의 출력은, 공통 영역(112)이본 실시예에 포함되는지에 따라, 공통 영역(112) 또는 메모리 버스(110)로 전송될 수 있다.
번역 논리(201)는 데이터를 데이터 마스크에 맵핑하는 것이거나 데이터 마스크를 데이터에 맵핑하는 것 중 하나일 수도 있고 이들 양자 모두일 수도 있다. 이러한 정보는 맵핑 레지스터(203), 또는 예를 들어 하나 이상의 멀티플렉서를 포함할 수 있는 선택 소자(204)와 결합될 수 있는 또 다른 장치에 저장될 수 있다. 데이터 마스크 맵 또는 데이터 마스크 맵 세트가 선택 소자(204)에 대한 하나 이상의 입력으로서 유선 접속되어 있다면, 맵핑 레지스터(203)가 더 이상 필요하지 않을 수 있다. 맵핑 레지스터(203)는 가변적인, 즉 프로그래밍 가능한 맵핑을 위하여 이용될 수 있고, 메모리 컨트롤러(102) 내부에 위치한 하나 이상의 레지스터로서 구현될 수 있다. 데이터를 데이터 마스크에 맵핑하는 것이나 데이터 마스크를 데이터에 맵핑하는 것의 원시 소스는 메모리 모듈, BIOS, 오브젝트 코드, 또는 기타 저장 영역일 수 있다. 메모리 모듈은 메모리 유닛과 메모리 컨트롤러를 포함할 수 있다. 또 다른 실시예에서, 맵핑 레지스터(203)는 예를 들어 EPROM 등의 메모리(108) 내에 위치하여 레지스터 맵핑 방정식을 포함할 수 있다. 이러일 실시예에서, 메모리(108)는 메모리 컨트롤러(102)를 수용하도록 프로그리맹될 수 있다.
선택 소자(204)는 데이터 마스크 비트 또는 데이터 비트를 재순서화하는 데에도 또한 사용될 수 있다. 예를 들어, 선택 소자(204)는 맵핑 레지스터(203)에 있는 데이터 마스크 맵 또는 데이터 마스크 맵 세트를 사용할 수 있다. 일 실시예에서, 맵핑 레지스터(203)의 출력은 선택 소자(204)와 결합될 수 있다. 이 방법은, 설계 시, 데이터 마스크 맵핑이 알려질 필요가 없다.
도 3은 본 발명의 일 실시예에 따라, 데이터 라인에 데이터 마스크가 집적되어 있는 기입 전송(write transfer)의 파형을 도시하고 있다. 이것은 동일한 핀에서 전송되는 데이터 청크 및 데이터 마스크의 일례로서 기능한다. 동일한 핀에서 전송되는 데이터 청크 및 데이터 마스크를 도시하는 데 있어, 도 3은 데이터 마스크 맵 및 n개의 청크로 분할된 데이터도 도시하고 있다. 도 3의 예에서, 데이터 마스크 워드가 전송되고 있는 시간이 s0 내지 sx로 나타나고, 데이터 워드가 전송되고 있는 시간이 S0-Sy로 나타난다. 워드(word)란 단일 동작에 의해 저장 공간으로부터 프로세서 레지스터로 이동될 수 있는 데이터 단위를 의미한다. 데이터 마스크는 DM0-DMx로 표현되고, 데이터는 D0-Dy로 표현된다. 따라서, 도 3의 데이터 청크는 C0-Cn으로 표현된다. 데이터는 예를 들어 1 비트 정도로 작거나 데이터 전체가 전송될 정도로 큰 임의의 크기를 지닌 청크로 분할될 수 있다. 데이터 청크의 크기는 예를 들어, 시스템에 따라 하나의 워드일 수 있다. 예를 들어, 64 비트 버스를 지닌 시스템에서는, 데이터 마스크 워드 및 데이터 워드는 64 비트로서 전송될 수 있다. 청크 크기는 데이터 마스크이 구현되는 입도(granularity)로서 정의된다. 예를 들어, 1 데이터 마스크 비트는 1 바이트(8 비트)의 데이터를 마스크할 수 있다. 이 경우, 1 청크는 1 바이트의 데이터이다. 이 실시예에서, 각 청크가 1 바이트의 데이터이므로, 64 비트 데이터 워드는 8 청크로 구성된다. 소정의 실시예에서, 데이터 마스크 비트는 데이터 청크들을 마스크할 수 있다. 일 실시예에서, 데이터 청크들은 다른 소자에 병렬로 접속될 수 있고, 데이터 마스크는 어떤소자가 데이터 청크를 수신하는지를 마스크할 수 있다.
또한, 도 3은 데이터 마스크 맵의 일례를 도시하고 있다. 데이터 마스크 비트와 데이터 간의 맵핑은, 메모리 컨트롤러와 타겟(예를 들어, 메모리 장치)이 맵핑에 동의하는 한 어느 방향으로든지 가능하다. 도 3의 데이터 마스크 맵핑 스킴은 데이터에 대한 데이터 마스크 비트의 소정 맵핑의 일례로서 기능한다.
데이터 마스크는 기입 전송동안 임의의 순서로 데이터와 함께 전송될 수 있다. 데이터 마스크와 데이터 청크 간에 특정한 타아밍 관계가 필요하지 않는데, 그 이유는 데이터 마스크가 데이터를 전송하는 동일한 데이터 라인에 내장되어 있기 때문이다. 예를 들어, 데이터 마스크는 데이터보다 먼저, 데이터 내에 또는 데이터보다 나중에 전송될 수 있다. 도 3에 도시된 바와 같이, 데이터 마스크를 데이터보다 먼저 전송함으로써, 메모리 장치는 맵핑 논리가 수신된 데이터에 작용하기 전에 맵핑 논리를 구성할 수 있다. 데이터 마스크가 데이터보다 나중에 전송된 경우, 데이터는 데이터 마스크 정보를 기다리기 위해 버퍼에 저장되어야 하기 때문에 기입 폐기에서 지연이 있을 수 있다.
요구되는 데이터 마스크 전송의 수는 시스템에서 정해질 수 있고 이는 구현되는 기술에 좌우된다. 일 실시예에서, 데이터 마스크 전송의 최대 수는 각 전송에서 데이터 전송의 수를 데이터 청크의 수로 나눈 것과 동일하다. 이 관계는 각 데이터 전송이 동일한 수의 청크를 지닌다는 것을 가정한다. 그러나, 일부 실시예에서 이 가정은 필요하지 않고 또한 본 발명을 제약하지 않는다.
기입 전송에서의 데이터 마스크 워드의 수는 기입 전송에서의 데이터 워드의수 및 청크 크기에 좌우된다. 예를 들어, 청크 크기가 1 바이트의 데이터가고, 8 데이터 워드가 기입 전송에 필요할 경우, 워드가 64 비트라면 기입 전송은 총 64 청크일 것이다. 1 데이터 마스크 비트가 1 청크를 마스크할 경우, 64 데이터 마스크 비트가 기입 전송을 위해 필요할 것이다. 일부 시스템에서는 64 데이터 마스크 비트가 1 데이터 마스크 워드를 구성하므로, 그러한 시스템에서는 기입 전송을 위해 1 데이터 마스크 워드가 필요할 것이다. 상기 예에서, 기입 전송은 8 데이터 워드(D0-D8) 및 1 데이터 마스크 워드(DM0)를 가질 것이다.
일부 상황에서, 1 이상의 데이터 마스크 워드가 기입 전송에 필요할 수 있다. 예를 들어, 청크 크기가 2 비트이고, 기입 전송에서 8 데이터 워드가 필요한 경우, 워드가 64 비트라면 기입 전송에 총 256 청크가 있을 것이다. 1 데이터 마스크 비트가 1 청크를 마스크한다면, 256 데이터 마스크 비트가 기입 전송을 위해 필요할 것이다. 본 실시예에서 64 데이터 마스크 비트가 1 데이터 마스크 워드를 구성할 경우, 기입 전송을 위해 4 데이터 마스크 워드가 필요할 것이다. 상기 실시예에서, 기입 전송은 8 데이터 워드 및 4 데이터 마스크 워드를 가질 것이다.
청크 크기가 2 비트인 이전 단락의 예에서, 워드의 데이터 청크의 수는 32일 것이다. 그러므로, 도 3에서, 데이터 청크는 C0-C31로 번호가 매겨진다. 기입 전송에서의 4 데이터 마스크 워드는 DM0-DM3으로 번호가 매겨지고, 기입 전송에서의 8 데이터 마스크 워드는 D0-D7로 번호가 매겨진다. 도 3에서, 예시적인 데이터 마스크 맵핑 스킴을 사용하여, DM0의 체크 무늬가 있는 데이터 마스크 비트는 D0의 데이터 청크 Cn을 마스크한다. DM0의 점이 찍힌 데이터 마스크 비트는 D1의 C0를마스크하고, DM1의 대각선 표시된 데이터 마스크 비트는 D2의 C2를 마스크한다.
맵핑 스킴은 하나의 데이터 마스크 비트가 하나의 청크과 연관된다는 것을 나타내기 위해 1 대 1 관계를 가진다. n개의 데이터 청크로 맵핑될 수 있는 n개의 데이터 마스크 비트가 있기 때문에, 전체 n2의 가능한 맵핑 스킴이 있을 수 있다. 예를 들어, 64 데이터 청크를 지닌 8 데이터 워드 전송이 64 데이터 마스크 비트를 필요로 할 경우, 4,096개의 가능한 맵핑 스킴이 있을 수 있다. 동일한 칩 선택과 결합된 메모리의 하나 이상의 블럭 중의 하나인 메모리 랭크(rank)는 자기 고유의 맵핑 스킴을 가질 수 있고, 메모리 모듈은 하나 이상의 메모리 랭크를 지닐 수 있다. 그러므로, 하나 이상의 맵핑 스킴은 각 메모리 모듈에서 정확한 데이터 마스크 맵핑을 수행해야 한다.
도 4는 본 발명의 일 실시예에 따라 컨트롤러가 프로세서와 메모리 사이의 인터페이스를 제공하는 하나의 방법을 예시하는 흐름도(400)이고, 여기서, 데이터 및 데이터 마스크는 동일 핀을 사용하여 메모리와 통신한다. 블럭(402)은 방법을 시작한다. 다음으로, 블럭(404)에서, 컨트롤러는 프로세서로부터 또는 I/O로부터 데이터 및 데이터 마스크를 수신할 수 있다. 프로세서 또는 I/O는 메모리에 대하여 포맷될 필요가 있는 포맷의 컨트롤러 정보를 부여할 수 있다. 컨트롤러는 데이터에 대한 데이터 마스크의 내부 맵핑을 가질 수 있고, 따라서, 블럭(406)에서, 컨트롤러는 데이터 마스크에 대한 데이터의 맵핑에 따라 데이터의 포맷을 변환할 수 있다. 일 실시예에서, 컨트롤러는 데이터의 포맷을 데이터 마스크가 집적되어 있는 데이터 라인으로 변환할 수 있다. 다음으로, 블럭(408)에서, 컨트롤러는 데이터 마스크가 집적되어 있는 데이터 라인을 메모리에 기입할 수 있다. 마지막으로, 블럭(410)에서, 컨트롤러는 이 방법을 종료할 수 있다. 마스크 및/또는 데이터 마스크를 메모리로부터 프로세서 또는 I/O로 전송하기 위하여, 역방량의 프로세스는 2 라인의 데이터 및 데이터 마스크를 1 라인의 데이터 및 데이터 마스크로 변환하는 대신, 하나의 집적된 라인의 데이터 청크 및 데이터 마스크 비트를 2 라인의 데이터 청크 및 데이터 마스크 비트로 변환하는 것을 포함한다.
도 5는 본 발명의 일 실시예에 따라, 번역 논리(201)를 사용하여, 하나 이상의 데이터 마스크 비트의 데이터 마스크 스트림(504)을 하나 이상의 데이터 청크의 데이터 청크 스트림(506)으로 집적하는 개략 블럭도를 나타낸다. 도 5의 좌측에서, 데이터 마스크 스트림(504) 및 데이터 청크 스트림(506)이 예를 들어 프로세서에 의해 동일한 공간 시간에 전송될 수 있다. 번역 논리(201)는 데이터 마스크 스트림(504) 및 데이터 청크 스트림(506)을 메모리 인식가능 포맷으로 포맷할 수 있다. S0-Sy는 시스템 클럭을 나타낼 수 있다. 데이터 청크 스트림(506)은 도 3에 의하면 하나 이상의 청크 D0-Dy로 분할된 데이터를 포함할 수 있다. 데이터 마스크 스트림(504)은 하나 이상의 데이터 청크 D0-Dy와 연관된 하나 이상의 데이터 마스크 비트 M0-My를 포함할 수 있다. 데이터 청크 스트림(506)과 데이터 마스크 스트림(504)은 데이터 마스크 라인(510)과 데이터 청크 라인(512) 등의 상이한 라인들을 통해 번역 논리(201)에 공급될 수 있다.
도 5의 번역 논리(201)의 출력은 데이터 및 데이터 마스크 스트림(508), 즉연관된 데이터 마스크가 집적되어 있는 데이터 청크 스트림일 수 있다. 데이터 청크 및 데이터 마스크가 출력 데이터 라인(524)에 전송되는 순서는 실시예들마다 다를 수 있다. 소정 실시예에서, 데이터 마스크를 먼저 전송하면, 데이터가 도착할 때 데이터 청크가 데이터 마스크에 기초하여 처리될 수 있으므로, 저장 비용이 감소된다. 본 실시예에서는, 데이터 마스크가 클럭 s0-sx 동안 먼저 전송된 후, 데이터 청크가 클럭 S0-Sy 동안 전송된다. 일 실시예에서, 데이터는 데이터 및 데이터 마스크 스트림(508)에 의해 표시된 것과 같은 포맷으로 컨트롤러(102)와 메모리(108) 사이를 이동하는데, 그 이유는 본 발명의 일 실시예는 컨트롤러(102)와 메모리(108) 사이의 하나 이상이 데이터 마스크 라인에 대한 필요성을 제거할 수 있기 때문이다. 컨트롤러(102)와 프로세서(104) 사이 또는 컨트롤러(102)와 ICH(140) 사이에서는, 데이터가 데이터 청크 라인(506)과 데이터 마스크 라인(504)의 조합으로 이동할 수 있다.
도 6은 본 발명의 일 실시예에 따라 데이터 청크에 대한 데이터 마스크의 맵핑을 변경하기 위한 번역 논리(201)의 일례의 개략 블럭도이다. 번역 논리(201)로의 입력으로서 도시된 바와 같이, 데이터 마스크 DM0Cn-DM0C0는 시간 s0=S0 동안 데이터 청크 D0Cn-D0C0와 연관되고, 데이터 마스크 DM1Cn-DM1C0는 시간 s1=S1 동안 데이터 청크 D1Cn-D1C0와 연관되고, 데이터 마스크 DMxCn-DMxC0는 시간 sy=Sy 동안 데이터 청크 DyCn-DyC0와 연관된다. 번역 논리(201)은 데이터 마스크 및 데이터 청크간의 연관성을 변경할 수 있다. 예시된 실시예에서, 번역 논리(201)는 클럭 s0 동안 데이터 마스크 DM0Cn-DM0C0와 연관된 데이터 청크의 순서를 역으로 할 수 있다. 번역 논리(201)로부터의 출력으로서 도시된 바와 같이, 데이터 마스크 DM0Cn-DM0C0는 시간 s0=S0 동안 데이터 청크 D0C0-D0Cn와 연관되고, 데이터 마스크 DM1Cn-DM1C0는 시간 s1=S1 동안 데이터 청크 D1Cn-D1C0와 연관되고, 데이터 마스크 DMxCn-DMxC0는 시간 sy=Sy 동안 데이터 청크 DyCn-DyC0와 연관된다. 데이터 마스크 비트 및 데이터 청크를 관련시키기 위한 많은 가능성이 있다.
번역 논리는 멀티플렉서, 또는 맵핑을 일치시키기 위하여 정보를 재순서화하는 다른 방법을 포함할 수 있다. 데이터 마스크가, 정확히 대응하는 데이터 청크가 메모리 내에서 오버라이트되는 것을 방지할 수 있도록, 데이터 청크에 대한 데이터 마스크의 맵핑이 결정되고 나면, 메모리 컨트롤러 내의 하드웨어는 프로그램될 수 있다. 메모리 컨트롤러의 하드웨어 내에 맵핑을 프로그래밍하는 일 실시예는, 도 2에서 맵핑 레지스터(203)와 선택 소자(204)로 나타난 바와 같이, 레지스터를 사용하여 하드웨어를 프로그래밍하는 것일 수 있다.
도 7은 본 발명의 일 실시예에 따라, 메모리 컨트롤러가 그 자체를 프로그래밍하는 방법의 흐름도를 나타낸다. 블럭(702)에서, 데이터 마스크와 데이터 청크의 알려진 맵핑은 맵핑 레지스터(203)로 삽입될 수 있다. 하나 이상의 맵핑 레지스터는 이 방법에 병합될 수 있다. 이들 값은 BIOS와 같은 소프트웨어 또는 펌웨어를 통해 하드웨어에 의해 삽입될 수 있다. 일 실시예에서, 블럭(704)에서, 맵핑레지스터(203)는 데이터 마스크 맵 또는 데이터 마스크 맵 세트에 따라 데이터 청크 또는 데이터 마스크의 순서를 조작하기 위하여 선택 소자(204)로의 접속을 가질 수 있다. 블럭(702)에서, 알려진 데이터 마스크 맵 또는 데이터 마스크 맵 세트는 맵핑 값을 갖는 회로 등으로 프로그래밍되어 정확히 대응하는 데이터 청크가 메모리에 오버라이트되는 것을 방지하는 방식으로 데이터 마스크를 데이터 청크로 맵핑하는 메모리(108)와의 통신을 유지한다.
도 8은 본 발명의 일 실시예에 따라, 데이터 청크의 특정 예를 마스크하는 데이터 마스크 비트의 특정 값 예의 테이블 및 블럭도를 나타내고 있으며, 예에서 데이터 마스크 맵 또는 데이터 마스크 맵 세트가 메모리 컨트롤러로 프로그래밍될 수 있다. 열(802)은 컴퓨터 시스템에 사용될 수 있는 데이터를 포함하는 한편, 열(804)은 데이터 마스크를 포함하여 선택된 데이터가 메모리에 오버라이트되는 것을 방지한다. 본 예에서, 각각의 데이터 마스크 비트는 데이터 중 2개의 영숫자 또는 1 바이트를 마스크한다. 데이터에 데이터 마스크 비트를 할당하는 다른 방식이 사용될 수도 있다. 808 행 804 열에서, 데이터 마스크 비트의 최저 4 비트는 2진수로 "1010"인 "A"일 것이고, 이는 데이터 청크 "DE" 및 "BE"에 대해 데이터 마스크 비트가 표명된 것을 의미한다. 810 행 804 열에서, 데이터 마스크 비트는 "1", 즉 "0001"이고, 이는 데이터 청크 "CE"를 마스크한다. 812 행 804 열에서, 데이터 마스크 비트는 "3", 즉 "0011"이고, 이는 데이터 청크 "45" 및 "67"을 마스크한다. 814 행 804 열에서, 데이터 마스크 비트는 "2", 즉 "0010"이고, 이는 데이터 청크 "CD"를 마스크한다. 816 행 804 열에서, 데이터 마스크 비트는 "6", 즉 "0110"이고, 이는 데이터 청크 "46" 및 "8A"를 마스크한다. 818 행 804 열에서, 데이터 마스크 비트는 "F", 즉 "1111"이고, 이는 데이터 청크 "13", "57", "9B" 및 "DF"를 마스크한다. 820 행 804 열에서, 데이터 마스크 비트는 "0"이고, 이는 어떠한 데이터 청크도 마스크하지 않는다. 822 행 804 열에서, 데이터 마스크 비트는 "4", 즉 "0100"이고, 이는 데이터 청크 "AA"를 마스크한다.
본 예에서 데이터 전송은 4 바이트 길이이고, 데이터 청크는 1 바이트 길이이다. 데이터 청크의 사이즈 및 선택된 데이터 엘리먼트와 라인의 순서는 변할 것이며, 동일 라인(들)에 통합된 데이터 청크들 및 그들 각각의 데이터 마스크 모두를 전송하는 목적을 여전히 달성할 것이다. 이러한 라인들은 메모리 컨트롤러로부터 메모리로 전송될 준비가 될 수 있는 값을 전송한다. 라인(824) 상에서, 데이터 엘리먼트 및 데이터 마스크 양자 모두가 동일 라인 상에서 전송된다. 본 예에서 전송된 데이터 엘리먼트들은 806-822 행 802 열로부터의 각 데이터 청크의 최초 바이트이다. 그래도, 라인(824)에 상에서 데이터 마스크 비트(832)가 최초로 전송된다. 선택된 데이터 마스크 비트 대 데이터 청크의 순서 또한 변화할 수 있고, 그러한 경우에도 본 발명의 실시예의 목적을 여전히 달성할 것이지만, 편의상, 본 도면에는 하나의 옵션만이 표시되는 것으로 선택되었다. 라인(824) 상에서 전송된 마스크 비트는 16 진수로는 "21", 즉 2 진수로는 "00100001"이다. 소자 D2, D1 및 D0으로의 나머지 3개의 데이터 라인(826, 828 및 830) 상에서 각각, 802 열로부터의 데이터의 2번째, 3번째 및 4번째 바이트가 보내어진다. 이들 각각의 데이터 마스크 비트(834, 836 및 838)는 본 실시예에서 "B0", "3D" 및 "26", 즉 "10110000","00111101" 및 "00100110"이다. 송신되는 상술한 마스크 비트들은 808-822 행 802 및 804 열로 표시된 바와 같이 바이트 값 "13", "DE", "AA", "57", "46", "9B", "8A", "CD", "45", "BE", "DF", "67" 및 "CE"를 마스크하는 것에 대응할 것이다.
데이터 라인(824, 826, 828 및 830)은 도 1의 메모리 버스(110)와 같은 메모리 접속의 실시예에 사용될 수 있다. 메모리 버스(110)의 가능한 구현으로는 그 출력이 출력 소자 당 1 비트로 결합되는 하나 이상의 멀티플렉서 회로를 포함할 수 있다. 도 9는 본 발명의 일 실시예에 따라 다수의 비트를 하나의 소자로 송신하기 위해 엘리먼트들을 선택하는 멀티플렉서 회로의 2개의 회로예를 도시한다. 회로(900)는 도 8의 소자 D0의 비트 0에 대응하는 비트 0을 라인 D0.0을 통해 소자 0에 출력하는 회로를 도시한다. 본 실시예에는, 전송을 위한 데이터 마스크 비트가 총 32 비트 존재하지만, 다른 실시예에서는 그 개수가 변화할 수 있다. 데이터 마스크 비트 0 내지 31은 멀티플렉서(902)에 접속된다. 멀티플렉서 선택(904)은 데이터 청크에 대한 데이터 마스크 비트의 맵핑에 기초하여 어떠한 데이터 마스크 비트가 전송에 적절할 것인가를 나타낸다. 본 실시예에서의 멀티플렉서 선택(904)은 소자 D0, 비트 0에 대한 데이터 마스크 비트와 데이터 청크간 맵핑에 대응하고, 16 진수로는 00, 즉 2 진수로는 00000000이다. 멀티플렉서 선택(904)은 그 값을 표시하기 위해 유선 접속될 수 있다. 일 실시예에서, 2 진수 제로는 접지에 접속되고, 2 진수 1은 전원에 접속되어 맵핑을 유선 접속한다. 다른 실시예에서, 멀티플렉서 선택(904)은 도 2에 도시된 맵핑 레지스터(203) 등의 레지스터에 접속된다.
멀티플렉서(906)는 어떠한 메모리 랭크에 데이터가 기입되는지를 선택할 것이다. 메모리 랭크는 또한 임의의 메모리 랭크들 사이에서 맵핑이 동등한 경우 회로에서 요구될 선택의 수를 감소시켜 줄 것이다. 멀티플렉서(908)는 데이터 청크 또는 데이터 마스크 비트가 라인 D0.0 상에서 전송될 수 있는지 여부를 제어할 것이다. 멀티플렉서(908)에 대한 하나의 데이터 입력은 데이터 입력(910)일 수 있다. 전송될 데이터 청크, 데이터 마스크, 랭크 등을 선택하는 많은 다른 실시예가 존재한다. 회로(901)는, 타겟 데이터 출력이 라인 D0.1 상에서 소자 D0 비트 1로 접속된다는 점을 제외하고는 회로(900)와 유사하며, 멀티플렉서(912, 916, 918) 및 라인(914, 920)이 각각 멀티플렉서(902, 906, 908) 및 라인(904, 910)에 대응한다. 회로(900 및 901) 및 추가적인 소자 비트에 대해 선택적으로 추가되는 회로를 포함하는 회로는, 도 10에서 상세히 설명되듯이 일련의 멀티플렉서가 적어도 하나의 데이터 마스크 비트 및 적어도 하나의 데이터 청크를 동일 라인 상에 로드하여 메모리에 공급할 수 있게 한다.
도 10은 본 발명의 실시예에 따라, 데이터 마스크 비트와 데이터 청크 사이의 맵핑을 선택하는 멀티플렉서들을 포함하는 어레이(1000)를 도시한다. 일 실시예에서, 이 멀티플렉서들은 컨트롤러(102) 내에 위치된다. 입력은 데이터 마스크 비트일 수 있다. 출력은 이용가능한 데이터 마스크 맵에 따라 입력 데이터 마스크 비트로부터 선택된 데이터 마스크 비트일 수 있다. 표기 dmr[N]는 선택된 출력 데이터 마스크 비트를 나타낸다. 이 때, r은 랭크를 나타내고, N은 데이터 마스크 내의 어느 비트인지를 나타낼 수 있다. 각각의 메모리 랭크가 상이한 맵핑을 가질수 있고 상이한 어레이에 의해 제어될 수 있기 때문에, 도 10은 복수의 멀티플렉서 어레이를 도시한다. 각각의 랭크가 동일한 맵핑을 갖는다면, 일 실시예에서, N:1 멀티플렉서의 수는 메모리 랭크의 전체 수보다 작을 수 있다. N:1 멀티플렉서를 갖는 각각의 비트 대신에, N:1의 출력을 갖는 단일 멀티플렉서와 어느 랭크를 액세스할지를 선택하는 추가적인 r:1 멀티플렉서라면 충분하다. 도 10에는 도시되지 않았지만, 데이터 청크에 대한 데이터 마스크 비트의 맵핑은 어느 메모리 위치가 의도되는지를 암시할 수도 있고 암시하지 못할 수도 있다. 일 실시예에서, 맵핑은 메모리 위치를 암시하지 않고, 다른 칩이 데이타 청크를 수신하여 그 장치에 대한 위치를 맵핑할 수 있다. 다른 칩이 사용되면, 맵핑, 저장 및/또는 생성 논리가 맞춤 규칙(tailored rules) 또는 메모리 위치 스킴을 수용하도록 구현된 다른 지식-기반 입력으로 최소화될 수 있다.
전술한 실시예에서, 도 9 내지 10의 회로는 메모리 컨트롤러가 멀티플렉서 선택 접속을 통해 데이터 마스크 맵 또는 데이터 마스크 맵 세트로 프로그래밍될 수 있다는 것을 나타내었다. 메모리 컨트롤러 순서화를 프로그래밍하는 일 실시예는 멀티플렉서 선택(904) 또는 멀티플렉서 선택(914)과 같은 멀티플렉서 선택을 접지 및/또는 전원에 유선 접속하는 것일 수 있다. 데이터 마스크 맵 또는 데이터 마스크 맵 세트로 메모리 컨트롤러를 프로그래밍하는 다른 실시예는 메모리 내의 한 위치로부터 데이터 마스크 맵 데이터를 검색하여 데이터 마스크 맵 또는 데이터 마스크 맵 세트를 생성하는 소프트웨어 알고리즘을 사용하는 것일 수 있다.
도 11은 본 발명의 실시예에 따라 메모리 모듈 내의 SPD(106)로부터 데이터마스크 맵핑 정보를 취득하는 방법의 흐름도를 도시한다. SPD(106)는 BIOS가 모듈의 크기, 데이타 폭, 속도 및 전압과 같은 정보를 검색하도록 동기식 동적 랜덤 액세스 메모리 모듈 상의 전기적으로 삭제가능하고 프로그래밍 가능한 판독전용 메모리 칩 내에 저장된 정보를 포함한다. BIOS는 이 정보를 사용하여 최대 신뢰도 및 성능을 위해 적절히 메모리를 구성할 수 있기 때문에, BIOS는 메모리 컨트롤러를 프로그래밍하기 위해 SPD(106) 내에 저장된 데이터 마스크 맵 또는 데이터 마스크 맵 세트로부터 이익을 얻을 수도 있다. 이 실시예를 위한 SPD(106)는 도 1의 데이터 맵(124)과 같은 메모리의 한 영역에 데이터 마스크 맵 또는 데이터 마스크 맵 세트를 보유하는 저장 영역을 포함할 수 있다.
도 11의 방법(1100)은 처리 블럭(1102)에서, 각각의 메모리 모듈 내의 SPD(106)로부터의 데이터 마스크 맵핑 정보를 취득함으로써 개시된다. 시스템 내의 각각의 메모리 모듈은 하나 이상의 메모리 랭크를 포함할 수 있고, 그 메모리 랭크 각각은 상이한 데이터 마스크 맵핑 스킴을 가질 수 있다.
모듈의 메모리 랭크의 데이터 마스크 맵핑 스킴은, 처리 블럭(1104)에서 데이터 마스크 맵핑 정보로부터 결정될 수 있다. 일 실시예에서, 데이터 마스크 맵핑 정보는 각각의 메모리 랭크의 데이터 마스크 맵핑 스킴일 수 있다. 다른 실시예에서, 각각의 메모리 모듈로부터 취득된 데이터 마스크 맵핑 정보는 각각의 메모리 모듈의 맵핑 스킴의 지시자를 포함할 수 있다. 맵핑 스킴의 지시자는 "Vendor A"와 같은 단어일 수도 있고, "4865"와 같은 숫자일 수도 있다. 단어 또는 숫자는 메모리 모듈의 맵핑 스킴과 연관될 수 있다. 따라서, 각각의 지시자가 수신되면,그것은 메모리 모듈의 각각의 메모리 랭크의 데이터 마스크 맵핑 스킴을 표시할 수 있다. 예를 들어, "Vendor A"가 수신되면, 그것은 메모리 모듈의 하나의 메모리 랭크가 맵핑 스킴 X를 가지고, 동일한 메모리 모듈의 다른 메모리 랭크는 맵핑 스킴 Y를 가지고, 동일한 모듈의 또다른 메모리 랭크는 맵핑 스킴 Z를 가짐을 나타낸다.
데이터 마스크 맵핑 스킴이 취득된 후에, 메모리 컨트롤러는 맵핑 스킴으로 프로그래밍될 수 있다. SPD(106)로부터 데이터 마스크 맵핑 정보를 취득하는 것은 메모리 판매업체에게 자신의 맵핑을 정의하는 유연성을 제공할 수 있고, 이것은 그들의 테스팅 방법을 용이하게 하거나 레이아웃 제약을 관대하게 할 수 있다. 메모리 제조자는 SPD(106) 내에 명시된 메모리 맵핑 정보를 배제하고, 대신에, 판매업체의 SPD 정보에 대응하는 공개된 맵(published map)에 의존할 수 있다.
유선 접속 및 메모리 위치 검색에 더하여, 메모리 컨트롤러를 데이터 마스크 맵 또는 데이터 마스크 맵 세트로 프로그래밍하기 위한 다른 실시예는, 메모리 공급자의 메모리 특성을 조사하기 위한 소프트웨어 알고리즘을 사용함으로써 데이터 마스크 맵 또는 데이터 마스크 맵 세트를 추론하는 것일 수 있다. 도 12는 본 발명의 일 실시예에 따른 메모리 모듈의 각 메모리 랭크의 데이터 마스크 맵을 결정하기 위한 방법의 흐름도를 설명한다. 데이터 마스크 맵 또는 데이터 마스크 맵 세트를 결정하기 위한 방법마다 상이한 실시예들이 존재한다. 따라서, 다음의 실시예는 한 방법의 일례로서 기능한다. 메모리 모듈은 하나 이상의 메모리 랭크를 포함하고, 메모리 랭크들 각각은 상이한 데이터 마스크 맵 또는 데이터 마스크 맵세트를 가질 수 있어, 각 메모리 모듈의 메모리 랭크들 각각은 데이터 마스크 맵 또는 데이터 마스크 맵 세트를 결정하기 위해 검사될 필요가 있을 수 있다.
도 12의 방법(1200)은 프로세스 블럭(1202)에서 메모리 모듈의 제1 메모리 랭크를 선택함으로써 시작한다. 모든 데이터 마스크 비트들이 프로세스 블럭(1204)에서 표명되고, 선택된 메모리 랭크 내의 한 범위의 메모리를 알려진 제1 테스트 데이터 패턴으로 채우기 위한 제1 기입 전송이 프로세스 블럭(1206)에서 행해진다. 예를 들어, 최대 데이터 전송 사이즈의 폭일 수 있는 기입 전송은 모두 1인 데이터 패턴으로 행해질 수 있고, 표명된 데이터 마스크 비트들이 그 관련 데이터 청크가 마스크될 수 없음을 나타내기 때문에, 그 한 범위의 메모리는 1의 패턴으로 채워질 수 있다. 약정에 따라, 때때로 비표명된 데이터 마스크 비트가 그 관련 데이터 청크가 마스크될 수 있음을 나타낼 수 있다. 알고리즘은 어느 한쪽의 약정을 채용할 수 있으며, 본 실시예에서는, 표명된 데이터 마스크 비트는 그 관련 데이터 청크가 마스크될 수 없음을 나타낼 수 있고 비표명된 데이터 마스크 비트는 그 관련 데이터 청크가 마스크될 수 있음을 나타낼 수 있다.
표명될 수 있는 하나의 데이터 마스크 비트를 포함하는 테스트 데이터 마스크 패턴이 프로세스 블럭(1208)에서 기입될 수 있다. 선택된 메모리 랭크 내의 한 범위의 메모리를 알려진 제2 데이터 패턴으로 채우기 위한 제2 기입 전송이 프로세스 블럭(1210)에서 행해질 수 있다. 예를 들어, 최대 데이터 전송 사이즈의 폭을 갖는 기입 전송은 모두 0인 패턴으로 행해질 수 있고, 하나의 데이터 마스크 비트가 표명될 수 있기 때문에, 그 한 범위의 메모리의 데이터의 하나의 청크가 0의 패턴으로 채워질 수 있고, 청크의 나머지들은 마스크되어 1로 유지될 것이다. 상기 예에서, 알려진 0의 패턴은 한 범위의 메모리에서 변형된 청크를 식별하기 위한 '태그(tag)'로서 기능한다. 일 실시예에서, 제2 테스트 데이터 패턴이 프로세스 블럭(1210)에서 기입될 수 있다.
표명된 데이터 마스크 비트가 관련될 수 있는 데이터 청크를 식별하기 위해 '태그'가 사용될 수 있다. 데이터의 변형된 청크는 여러가지 방법들로 식별될 수 있으며, 다음에 일 실시예의 일례가 있다. 한 범위의 메모리 내의 데이터의 판독 요구가 블럭(1211)에서 행해질 수 있다. 데이터 패턴 내의 변형된 청크의 위치는, 판독 데이터의 청크들을 프로세스 블럭(1206)에서 기입된 알려진 제1 데이터 패턴의 청크들과 비교함으로써 결정될 수 있다. 이전 예에서, 모두 1인 패턴이 기입되었다. 불일치가 발생하면, 변형된 청크의 위치가 식별될 수 있다.
프로세스 블럭(1206)에서 기입되었던 알려진 제1 데이터 패턴의 청크들을 판독 데이터의 청크들과 비교하기 위해 선택되는 방법은, 사용된 데이터 패턴에 따라 달라진다. 한 방법은 판독 데이터를 프로세스 블럭(1206)에서 기입되었던 알려진 제1 데이터 패턴과 배타적 논리합(XOR)하는 것이다. 청크가 프로세스 블럭(1208)에서 사용된 '태그'에 일치할 때까지, XOR 연산의 결과를 청크 사이즈만큼 논리 시프트시킨다. 이전 예에서 '태그'는 모두 0이었다. 행해진 논리 시프트의 수는 변형된 청크의 위치를 나타낸다.
변형된 청크의 위치가 식별되었다면, 프로세스 블럭(1208)에서 선택된 데이터 마스크 비트의 맵핑이 알려질 수 있다. 예를 들어, 선택된 데이터 마스크 비트가 프로세스 블럭(1208)에서 사용된 데이터 마스크 비트 패턴의 제1 데이터 마스크 비트라면, 제1 데이터 마스크 비트는 제5 데이터 청크를 마스크한다. 프로세스 블럭(1208)에서 선택된 데이터 마스크 비트의 맵핑이 프로세스 블럭(1210)에서 기입될 수 있다. 블럭(1214)에서 결정되는 바와 같이 최종 데이터 청크가 사용될 때까지 블럭(1204~ 1206)을 루핑(looping)함으로써, 다른 데이터 마스크 비트들의 맵핑이 동일한 방법으로 결정될 수 있다. 나머지 랭크들에 대해 프로세스를 반복하기 위해 다음 블럭(1218 및 1220)들이 사용될 수 있다. 블럭(1218)에서 결정되는 바와 같이 최종 랭크가 처리되었다면, 프로세스는 블럭(1222)에서 종료될 수 있다. 이와 같이, 맵핑 스킴이 결정되어 앞서 설명한 바와 같이 컨트롤러(102)에 저장될 수 있다.
전술한 설명은 모든 면에서 단지 예시적인 것일 뿐, 본 발명의 실시예들의 범위를 제한하고자 하는 것은 아니다. 이 분야의 전문가에게는 변형들이 가능할 것이다. 본 발명은 그 사상 또는 주요 특징을 벗어나지 않고 다른 특정 형태로 구현될 수 있다. 본 청구범위의 균등물의 의의 및 범위 내에 있는 모든 변화는 본 발명의 범위에 포함된다. 변형들은 첨부된 청구범위의 사상 및 범위에 의해서만 제한되는 본 발명의 실시예들에 포함되어야 할 것이다.

Claims (30)

  1. 메모리 시스템으로부터, 상기 메모리 시스템 내의 메모리 모듈에서 사용되는 데이터 마스크 맵핑 스킴을 지시하는 정보를 취득하는 단계; 및
    상기 정보에 기초하여 상기 데이터 마스크 맵핑 스킴을 결정하는 단계
    를 포함하는 방법.
  2. 제1항에 있어서, 상기 취득 단계는
    상기 메모리 모듈에게 상기 정보를 전송하도록 지시하는 적어도 하나의 명령을 상기 메모리 모듈로 전송하는 단계; 및
    상기 메모리 모듈로부터 상기 정보를 수신하는 단계
    를 포함하는 방법.
  3. 제2항에 있어서, 상기 메모리 모듈로부터 상기 정보를 수신하는 단계는 상기 메모리 모듈 내의 직렬 구성 인식기(serial presence detect; SPD)로부터 상기 정보를 수신하는 단계를 포함하는 방법.
  4. 제3항에 있어서, 상기 직렬 구성 인식기로부터 상기 정보를 수신하는 단계는 상기 데이터 마스크 맵핑 스킴을 지시하는 지시기를 수신하는 단계를 포함하는 방법.
  5. 제3항에 있어서, 상기 직렬 구성 인식기로부터 상기 정보를 수신하는 단계는 상기 데이터 마스크 맵핑 스킴을 수신하는 단계를 포함하는 방법.
  6. 제1항에 있어서,
    상기 취득 단계는 상기 메모리 모듈 내의 한 범위의 메모리에 적어도 하나의 테스트 데이터 마스크 패턴 및 적어도 하나의 테스트 데이터 패턴을 기입하는 단계, 및 상기 적어도 하나의 테스트 데이터 패턴이 상기 적어도 하나의 테스트 데이터 마스크 패턴에 의해 수정되는 것에 응답하여 상기 한 범위의 메모리에 저장된 적어도 하나의 결과적인 데이터 패턴을 판독하는 단계를 포함하고,
    상기 결정 단계는 상기 적어도 하나의 결과적인 데이터 패턴에 기초하여 상기 한 범위의 메모리에 사용되는 상기 데이터 마스크 맵핑 스킴의 일부를 결정하는 단계를 포함하는 방법.
  7. 제6항에 있어서, 상기 기입 단계는
    상기 한 범위의 메모리에 제1 테스트 데이터 패턴을 기입하기 위한 제1 기입 전송을 행하는 단계; 및
    상기 한 범위의 메모리에 제2 기입 전송을 행하는 단계 -상기 제2 기입 전송은 제2 테스트 데이터 패턴 및 테스트 데이터 마스크 패턴을 포함하고, 상기 테스트 데이터 마스크 패턴은 상기 제2 테스트 데이터 패턴 내의 특정 데이터 청크를기입 방지하지 않음-
    를 포함하는 방법.
  8. 유선 접속 선택 소자(hardwired selection device)를 구비한 메모리 컨트롤러 -상기 유선 접속 선택 소자는 데이터 마스크 맵핑 스킴으로 상기 메모리 컨트롤러를 프로그래밍하고, 상기 데이터 마스크 맵핑 스킴은 적어도 하나의 데이터 마스크 비트를 메모리 모듈 내의 적어도 하나의 데이터 청크와 연관시킴-; 및
    상기 메모리 모듈에 결합된 출력
    을 포함하는 장치.
  9. 제8항에 있어서, 상기 유선 접속 선택 소자는 상기 적어도 하나의 데이터 마스크 비트, 및 상기 적어도 하나의 데이터 청크의 적어도 일부를 수신하는 장치.
  10. 제9항에 있어서, 상기 유선 접속 선택 소자는 상기 데이터 마스크 맵핑 스킴에 따라 상기 적어도 하나의 데이터 청크 중 하나와 연관되는 상기 적어도 하나의 데이터 마스크 비트 중 하나를 선택하는 장치.
  11. 제8항에 있어서, 상기 유선 접속 선택 소자는 상기 데이터 마스크 맵핑 스킴을 구현하는 장치.
  12. 저장 소자를 구비한 메모리 컨트롤러 -상기 저장 소자는 상기 메모리 컨트롤러에 대한 데이터 마스크 맵핑 스킴을 지시하는 정보를 가짐-; 및
    메모리 모듈에 결합된 출력
    을 포함하는 장치.
  13. 제12항에 있어서, 상기 저장 소자는 소프트웨어에 의해 데이터 마스크 맵을 로딩할 수 있는 장치.
  14. 제12항에 있어서, 상기 저장 소자는 BIOS에 의해 데이터 마스크 맵을 로딩할 수 있는 장치.
  15. 제12항에 있어서, 상기 저장 소자는 제조시에 상기 정보를 포함하는 장치.
  16. 제12항에 있어서, 상기 정보는 상기 데이터 마스크 맵핑 스킴을 지시하는 적어도 하나의 지시기를 포함하는 장치.
  17. 제12항에 있어서, 상기 정보는 상기 데이터 마스크 맵핑 스킴을 포함하는 장치.
  18. 적어도 하나의 데이터 마스크 맵핑 스킴을 사용하여, 적어도 하나의 데이터마스크 비트를 적어도 하나의 데이터 청크와 연관시키는 메모리 모듈; 및
    상기 메모리 모듈에 연결되고, 상기 메모리 모듈 내에서 사용되는 상기 적어도 하나의 데이터 마스크 맵핑 스킴으로 프로그래밍되는 메모리 컨트롤러
    를 포함하는 시스템.
  19. 제18항에 있어서,
    상기 메모리 모듈은 상기 적어도 하나의 데이터 마스크 맵핑 스킴 중 적어도 하나를 사용하기 위하여, 제1 및 제2 메모리 랭크를 포함하는 시스템.
  20. 제19항에 있어서,
    상기 제1 메모리 랭크는 상기 제2 메모리 랭크와 다른 데이터 마스크 맵핑 스킴을 사용하는 시스템.
  21. 제19항에 있어서,
    상기 제1 메모리 랭크는 상기 제2 메모리 랭크와 동일한 데이터 마스크 맵핑 스킴을 사용하는 시스템.
  22. 제18항에 있어서,
    상기 메모리 컨트롤러는 상기 메모리 모듈 내에서 사용되는 상기 적어도 하나의 데이터 마스크 맵핑 스킴 중 하나로 프로그래밍되는 저장 소자를 포함하는 시스템.
  23. 제22항에 있어서,
    상기 저장 소자는, 상기 데이터 마스크 맵핑 스킴에 따라, 상기 적어도 하나의 데이터 비트 중에서 상기 적어도 하나의 데이터 청크에 연관된 데이터 마스크 비트를 선택하기 위하여 선택 소자에 연결되는 시스템.
  24. 기계에 의하여 실행될 때, 상기 기계가
    메모리 시스템으로부터, 상기 메모리 시스템 내의 메모리 모듈에서 사용되는 데이터 마스크 맵핑 스킴을 지시하는 정보를 취득하는 단계; 및
    상기 정보에 기초하여 상기 데이터 마스크 맵핑 스킴을 결정하는 단계
    를 포함하는 동작을 수행하게 하는 명령을 제공하는 기계 판독가능 매체.
  25. 제24항에 있어서, 상기 취득 단계는
    상기 메모리 모듈에게 상기 정보를 전송하도록 지시하는 적어도 하나의 명령을 상기 메모리 모듈로 전송하는 단계; 및
    상기 메모리 모듈로부터 상기 정보를 수신하는 단계
    를 포함하는 기계 판독가능 매체.
  26. 제25항에 있어서,
    상기 메모리 모듈로부터 상기 정보를 수신하는 단계는 상기 메모리 모듈 내의 직렬 구성 인식기로부터 상기 정보를 수신하는 단계를 포함하는 기계 판독가능 매체.
  27. 제26항에 있어서,
    상기 직렬 구성 인식기로부터 상기 정보를 수신하는 단계는 상기 데이터 마스크 맵핑 스킴을 지시하는 지시기를 수신하는 단계를 포함하는 기계 판독가능 매체.
  28. 제24항에 있어서,
    상기 취득 단계는 상기 메모리 모듈 내의 한 범위의 메모리에 적어도 하나의 테스트 데이터 마스크 패턴 및 적어도 하나의 테스트 데이터 패턴을 기입하는 단계, 및 상기 적어도 하나의 테스트 데이터 패턴이 상기 적어도 하나의 테스트 데이터 마스크 패턴에 의해 수정되는 것에 응답하여 상기 한 범위의 메모리에 저장된 적어도 하나의 결과적인 데이터 패턴을 판독하는 단계를 포함하고,
    상기 결정 단계는 상기 적어도 하나의 결과적인 데이터 패턴에 기초하여 상기 한 범위의 메모리에 사용되는 상기 데이터 마스크 맵핑 스킴의 일부를 결정하는 단계를 포함하는 기계 판독가능 매체.
  29. 제28항에 있어서,
    상기 기입 단계는
    상기 한 범위의 메모리에 제1 테스트 데이터 패턴을 기입하기 위한 제1 기입 전송을 행하는 단계; 및
    상기 한 범위의 메모리에 제2 기입 전송을 행하는 단계 -상기 제2 기입 전송은 제2 테스트 데이터 패턴 및 테스트 데이터 마스크 패턴을 포함하고, 상기 테스트 데이터 마스크 패턴은 상기 제2 테스트 데이터 패턴 내의 특정 데이터 청크를 기입 방지하지 않음-
    를 포함하는 기계 판독가능 매체.
  30. 제28항에 있어서,
    상기 데이터 마스크 맵핑 스킴의 일부를 결정하는 단계는, 상기 적어도 하나의 결과적인 데이터 패턴에 기초하여 상기 제2 테스트 데이터 패턴 내의 특정 데이터 청크를 식별하는 단계를 포함하는 기계 판독가능 매체.
KR1020047015011A 2002-03-22 2003-03-13 데이터 마스크 맵핑 정보의 취득 KR100692343B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10/104,837 US6801459B2 (en) 2002-03-22 2002-03-22 Obtaining data mask mapping information
US10/104,837 2002-03-22
PCT/US2003/007915 WO2003083665A2 (en) 2002-03-22 2003-03-13 Obtaining data mask mapping information

Publications (2)

Publication Number Publication Date
KR20040093180A true KR20040093180A (ko) 2004-11-04
KR100692343B1 KR100692343B1 (ko) 2007-03-09

Family

ID=28040707

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020047015011A KR100692343B1 (ko) 2002-03-22 2003-03-13 데이터 마스크 맵핑 정보의 취득

Country Status (10)

Country Link
US (3) US6801459B2 (ko)
EP (1) EP1488321B1 (ko)
JP (1) JP4034738B2 (ko)
KR (1) KR100692343B1 (ko)
CN (1) CN100380351C (ko)
AT (1) ATE507528T1 (ko)
AU (1) AU2003214186A1 (ko)
DE (1) DE60336894D1 (ko)
TW (1) TWI297435B (ko)
WO (1) WO2003083665A2 (ko)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6801459B2 (en) * 2002-03-22 2004-10-05 Intel Corporation Obtaining data mask mapping information
US6826663B2 (en) * 2003-01-13 2004-11-30 Rambus Inc. Coded write masking
WO2004063906A2 (en) * 2003-01-13 2004-07-29 Rambus Inc. Coded write masking
US7069533B2 (en) * 2003-03-14 2006-06-27 Chatered Semiconductor Manufacturing, Ltd System, apparatus and method for automated tapeout support
US7363236B2 (en) * 2003-03-14 2008-04-22 Chartered Semiconductor Manufacturing Ltd. System, apparatus and method for reticle grade and pricing management
US7149827B1 (en) * 2004-02-09 2006-12-12 Altera Corporation Methods and apparatus for tristate line sharing
US7644239B2 (en) * 2004-05-03 2010-01-05 Microsoft Corporation Non-volatile memory cache performance improvement
US7339837B2 (en) * 2004-05-18 2008-03-04 Infineon Technologies Ag Configurable embedded processor
US7490197B2 (en) 2004-10-21 2009-02-10 Microsoft Corporation Using external memory devices to improve system performance
US8429356B2 (en) * 2005-11-02 2013-04-23 Ati Technologies Ulc Write data mask method and system
US8914557B2 (en) 2005-12-16 2014-12-16 Microsoft Corporation Optimizing write and wear performance for a memory
US8296565B2 (en) * 2006-03-27 2012-10-23 Kyocera Corporation Communication protocol for device authentication
US8301888B2 (en) * 2006-03-27 2012-10-30 Kyocera Corporation System and method for generating secured authentication image files for use in device authentication
US9262326B2 (en) * 2006-08-14 2016-02-16 Qualcomm Incorporated Method and apparatus to enable the cooperative signaling of a shared bus interrupt in a multi-rank memory subsystem
US8006033B2 (en) * 2008-09-09 2011-08-23 Intel Corporation Systems, methods, and apparatuses for in-band data mask bit transmission
US9032151B2 (en) 2008-09-15 2015-05-12 Microsoft Technology Licensing, Llc Method and system for ensuring reliability of cache data and metadata subsequent to a reboot
US7953774B2 (en) 2008-09-19 2011-05-31 Microsoft Corporation Aggregation of write traffic to a data store
KR20100101449A (ko) * 2009-03-09 2010-09-17 삼성전자주식회사 메모리 장치, 그것의 마스크 데이터 전송 방법 및 입력 데이터 정렬 방법
WO2015047352A1 (en) * 2013-09-27 2015-04-02 Intel Corporation Mapping memory controller connectors to memory connectors
WO2016097808A1 (en) * 2014-12-14 2016-06-23 Via Alliance Semiconductor Co., Ltd. Dynamic cache replacement way selection based on address tag bits
GB2548908B (en) * 2016-04-01 2019-01-30 Advanced Risc Mach Ltd Complex multiply instruction
WO2019000456A1 (zh) * 2017-06-30 2019-01-03 华为技术有限公司 传输数据掩码的方法、内存控制器、内存芯片和计算机系统
US10679718B2 (en) * 2017-10-04 2020-06-09 Western Digital Technologies, Inc. Error reducing matrix generation
CN109408534A (zh) * 2018-11-02 2019-03-01 上海新炬网络信息技术股份有限公司 基于字符串唯一性与可重复性置换输出的方法

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4473878A (en) 1981-11-23 1984-09-25 Motorola, Inc. Memory management unit
EP0526114A1 (en) 1991-07-29 1993-02-03 Motorola, Inc. A method and apparatus for performing address translation in a data processor using masked protection indirection page descriptors
US5901105A (en) * 1995-04-05 1999-05-04 Ong; Adrian E Dynamic random access memory having decoding circuitry for partial memory blocks
KR100209358B1 (ko) * 1996-10-17 1999-07-15 이계철 멀티채널용 고속통신 장치 및 그 제어 방법
KR19980028402A (ko) * 1996-10-22 1998-07-15 문정환 디램(dram) 셀의 구조 및 그 제조 방법
AUPO647997A0 (en) * 1997-04-30 1997-05-22 Canon Information Systems Research Australia Pty Ltd Memory controller architecture
US6185454B1 (en) * 1998-04-29 2001-02-06 Medtronic, Inc. Power consumption reduction in medical devices employing just-in-time voltage control
US6185645B1 (en) * 1998-06-08 2001-02-06 Micron Electronics, Inc. Method for removing power and signals from an inadvertently swapped bus card
US6185654B1 (en) 1998-07-17 2001-02-06 Compaq Computer Corporation Phantom resource memory address mapping system
US6801459B2 (en) * 2002-03-22 2004-10-05 Intel Corporation Obtaining data mask mapping information
US6826663B2 (en) * 2003-01-13 2004-11-30 Rambus Inc. Coded write masking

Also Published As

Publication number Publication date
TW200402628A (en) 2004-02-16
AU2003214186A8 (en) 2003-10-13
EP1488321B1 (en) 2011-04-27
JP4034738B2 (ja) 2008-01-16
ATE507528T1 (de) 2011-05-15
WO2003083665A3 (en) 2003-12-18
US20040165446A1 (en) 2004-08-26
CN1653434A (zh) 2005-08-10
WO2003083665A2 (en) 2003-10-09
KR100692343B1 (ko) 2007-03-09
US6925013B2 (en) 2005-08-02
DE60336894D1 (de) 2011-06-09
TWI297435B (en) 2008-06-01
US6801459B2 (en) 2004-10-05
JP2005521176A (ja) 2005-07-14
US20030179605A1 (en) 2003-09-25
US20040093471A1 (en) 2004-05-13
EP1488321A2 (en) 2004-12-22
AU2003214186A1 (en) 2003-10-13
US6952367B2 (en) 2005-10-04
CN100380351C (zh) 2008-04-09

Similar Documents

Publication Publication Date Title
KR100692343B1 (ko) 데이터 마스크 맵핑 정보의 취득
US9652324B2 (en) Solid state disk controller apparatus
KR880002657B1 (ko) 데이타 처리 시스템에서 메모리 매핑(mapping)방법
US6285607B1 (en) Memory system
KR100647160B1 (ko) 컨트롤러 프로그래밍에 의한 하드웨어에서의 데이터마스크 매핑
US20080205168A1 (en) Apparatus and method for using a page buffer of a memory device as a temporary cache
US7136985B2 (en) Method and system for fast data access using a memory array
KR20100077026A (ko) 직렬 인터페이스 nand
US7245539B2 (en) Memory card, semiconductor device, and method of controlling semiconductor memory
US20140089548A1 (en) Systems, Methods, and Articles of Manufacture To Stream Data
US5586300A (en) Flexible addressing memory controller wherein multiple memory modules may be accessed according to comparison of configuration addresses
GB2430779A (en) An interface that enables fast read and write access to a scan-chain
KR20050110006A (ko) 데이터 프로세싱 시스템의 메모리 관리
US7237082B1 (en) Spatially distributed parity protection

Legal Events

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

Payment date: 20130228

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20140303

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20150227

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20160302

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20170302

Year of fee payment: 11

LAPS Lapse due to unpaid annual fee