KR20140146469A - 메모리 제어 시스템 및 이를 이용한 메모리 인터페이스 방법 - Google Patents
메모리 제어 시스템 및 이를 이용한 메모리 인터페이스 방법 Download PDFInfo
- Publication number
- KR20140146469A KR20140146469A KR1020130069253A KR20130069253A KR20140146469A KR 20140146469 A KR20140146469 A KR 20140146469A KR 1020130069253 A KR1020130069253 A KR 1020130069253A KR 20130069253 A KR20130069253 A KR 20130069253A KR 20140146469 A KR20140146469 A KR 20140146469A
- Authority
- KR
- South Korea
- Prior art keywords
- memory
- data
- serial
- memory control
- command
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Information Transfer Systems (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Computer Hardware Design (AREA)
- Dram (AREA)
Abstract
본 발명에 따른 메모리 제어 시스템은 데이터를 저장하는 메모리, 메모리 제어 신호를 통해 상기 메모리의 동작을 제어하는 메모리 제어부, 그리고 상기 메모리 제어부와 단일 링크를 형성하며, 상기 단일 링크 통해 상기 메모리 제어부로 상기 메모리 제어 신호를 전송하는 중앙 처리 장치를 포함한다.
Description
본 발명은 메모리 제어 시스템 및 이를 이용한 메모리 인터페이스 방법에 관한 것이다.
일반적으로 외장형 메모리는 중앙 처리 장치(central processing unit, CPU) 내에 존재하거나 외부에 존재하는 메모리 제어기를 통해 메모리에 접근이 가능하다.
따라서, 외장형 메모리를 제어하기 위한 종래의 방법은 중앙 처리 장치(central processing unit, CPU)와 외부의 메모리 제어기에 의한 인터페이싱 및 중앙 처리 장치에 내장된 메모리 제어기에 의한 인터페이싱이 있다. 두 방식은 메모리 제어기의 위치에 따라 달라질 뿐 기본적인 동작은 동일하다.
그리고, 종래의 중앙 처리 장치나 메모리 제어기는 메모리를 제어하기 위해서 버스를 사용하였다. 메모리 제어를 위한 버스는 통상 200여개의 라인으로 구성된다. 구성된 메모리 버스는 중앙 처리 장치가 몇 개의 채널을 지원하느냐에 따라 (해당 채널수 x 버스폭) 만큼의 라인수가 증가한다. 증가한 라인은 여타 장치와의 충돌을 피해 위치하고 배열해야 하며, 이 경우 메모리 증설의 제한을 받는다.
도 1은 종래 기술에 따라 중앙 처리 장치의 내부 또는 외부에 형성된 메모리 버스 형태의 제어 방식을 도시한 도면이다.
즉, 기타 여러 기기와 중앙 처리 장치의 통신은 버스를 통해 이루어지며, 메모리 역시 버스에 데이터를 싣기 위한 기기의 하나이다. 그러나, 고속 및 대용량 통신을 위해 빠른 접근을 요하는 상황에서 메모리 버스의 확장 및 메모리 모듈의 용량 증가 및 속도 증가는 일정 정도 한계가 있다.
본 발명은 고속으로 통신하고 데이터를 처리할 수 있는 메모리 제어 시스템 및 이를 이용한 메모리 인터페이스 방법을 제공하고자 한다.
본 발명의 메모리 제어 시스템은 데이터를 저장하는 메모리, 메모리 제어 신호를 통해 상기 메모리의 동작을 제어하는 메모리 제어부, 그리고 상기 메모리 제어부와 단일 링크를 형성하며, 상기 단일 링크 통해 상기 메모리 제어부로 상기 메모리 제어 신호를 전송하는 중앙 처리 장치를 포함한다.
상기 메모리 제어 신호는, 명령어 신호와 데이터를 포함하며, 상기 단일 링크는, 하나의 시리얼 패킷으로 상기 명령어 신호 및 상기 데이터를 동시에 전송할 수 있다.
상기 명령어 신호는, 응답이 필요한 명령어, 응답이 필요치 않은 명령어, 응답은 필요하나 단순 상태 정보만 필요한 명령어 및 외부 명령이 필요치 않은 내부 명령어 중 적어도 하나를 포함할 수 있다.
상기 시리얼 패킷은, 트랜잭션 계층 패킷(Transaction Layer Packet, TLP) 또는 데이터 링크 계층 패킷(Data Link Layer Packet, DLLP)의 요청 및 응답 명령어 중 적어도 하나를 포함할 수 있다.
상기 메모리 제어부 및 상기 중앙 처리 장치는, 명령 및 동작을 패킷화하는 트랜잭션 계층(Transaction Layer), 상기 트랜잭션 계층에서 생성된 시리얼 패킷을 회로를 통해 아날로그적으로 전달하는 물리 계층(Physical Layer), 그리고 상기 물리 계층을 이용하여 데이터를 전달하는 데이터 링크 계층(Data Link Layer)을 포함할 수 있다.
상기 단일 링크는, 시리얼 링크를 포함하며, 상기 메모리 제어부 및 상기 중앙 처리 장치의 물리 계층을 통해서 상기 시리얼 링크가 연결될 수 있다.
본 발명의 메모리 제어 시스템은 데이터를 저장하는 메모리, 메모리 제어 신호를 생성하여 상기 메모리의 동작을 제어하는 중앙 처리 장치, 그리고 메모리 제어 신호를 수신하여 상기 메모리에 전달하는 시리얼 패킷 제어부를 포함한다.
상기 중앙 처리 장치는, 메모리 제어 신호를 생성하는 메모리 제어부를 포함하며, 상기 메모리 제어부와 상기 시리얼 패킷 제어부 사이에는 시리얼 링크가 형성되고, 상기 시리얼 링크를 통해 상기 메모리 제어 신호가 상기 시리얼 패킷 제어부로 전달될 수 있다.
상기 메모리는, 읽기와 쓰기를 주 명령어로 하여 동작을 수행하는 플래시 메모리 또는 이이피롬(EEPROM) 중 적어도 하나의 비휘발성 메모리를 포함할 수 있다.
상기 메모리는, 읽기와 쓰기 동작을 수행하며, 내부 데이터를 유지하기 위한 리프레쉬(refresh), 프리차지(precharge) 및 액티브(active)의 명령어를 통해 동작을 수행하는 휘발성 메모리를 포함할 수 있다.
상기 시리얼 패킷 제어부는, 명령 및 동작을 패킷화하는 트랜잭션 계층(Transaction Layer), 상기 트랜잭션 계층에서 생성된 시리얼 패킷을 회로를 통해 아날로그적으로 전달하는 물리 계층(Physical Layer), 그리고 상기 물리 계층을 이용하여 데이터를 전달하는 데이터 링크 계층(Data Link Layer)을 포함할 수 있다.
상기 시리얼 패킷은, 명령어 신호와 데이터 중 적어도 하나를 포함하는 시리얼 패킷을 포함할 수 있다.
상기 시리얼 패킷 제어부는, 상기 메모리 제어부의 명령어에 대한 디코딩을 실행하고, 실행 결과를 패킷화할 수 있다.
본 발명의 메모리 인터페이스 방법은 메모리 제어부가 메모리의 동작을 제어하는 메모리 인터페이스 방법에 있어서, 상기 메모리 제어부가 명령어 신호와 데이터 중 적어도 하나를 포함하는 시리얼 패킷을 생성하는 단계, 상기 메모리 제어부가 상기 시리얼 패킷을 상기 메모리로 전송하고, 상기 메모리에 상태 정보 또는 데이터를 요청하는 단계, 그리고 상기 메모리가 상기 상태 정보 또는 상기 데이터를 메모리 제어부에 응답하는 단계를 포함한다.
상기 메모리 인터페이스 방법은 새로운 명령 수행을 위한 유효 구간을 통보하는 단계를 더 포함할 수 있다.
상기 상태 정보 또는 데이터를 요청하는 단계는, 단일 링크로 상기 상태 정보 또는 상기 데이터 전송할 수 있다.
상기 단일 링크는, 시리얼 링크를 포함하며, 상기 메모리 제어부와 상기 메모리 사이에 형성될 수 있다.
상기 시리얼 패킷은, 트랜잭션 계층 패킷(Transaction Layer Packet, TLP)의 요청 및 응답 명령어를 포함할 수 있다.
본 발명의 실시예에 따르면, 시리얼 링크를 형성하여 중앙 처리 장치와 주변 기기 간의 통신 병목 현상들을 줄이고, 고속 통신을 통해 해당 컴포넌트 간의 데이터 전송률 및 효율성 향상시켜 주변 장치에 의한 시스템 성능 저하를 막을 수 있다.
도 1은 종래 기술에 따라 중앙 처리 장치의 내부 또는 외부에 형성된 메모리 버스 형태의 제어 방식을 도시한 도면이다.
도 2는 본 발명의 한 실시예에 따른 메모리 제어 시스템의 블록도이다.
도 3은 본 발명의 또 다른 실시예에 따라 중앙 처리 장치 내부에 메모리 제어부를 형성한 메모리 제어 시스템의 블록도이다.
도 4는 본 발명의 한 실시예에 따라 형성된 시리얼 링크를 도시한 도면이다.
도 5는 본 발명의 한 실시예에 따라 데이터를 가진 TLP 요청의 패킷 구조이다.
도 6은 본 발명의 한 실시예에 따라 데이터가 없는 TLP 요청의 패킷 구조이다.
도 7은 본 발명의 한 실시예에 따라 데이터를 가진 TLP 응답의 패킷 구조이다.
도 8은 본 발명의 한 실시예에 따라 상태 정보를 가진 TLP 응답의 패킷 구조이다.
도 9는 본 발명의 한 실시예에 따라 벤더 고유 데이터 링크 계층의 패킷 구조이다.
도 10는 본 발명의 한 실시예에 따른 메모리 인터페이스 방법을 설명하는 흐름도이다.
도 2는 본 발명의 한 실시예에 따른 메모리 제어 시스템의 블록도이다.
도 3은 본 발명의 또 다른 실시예에 따라 중앙 처리 장치 내부에 메모리 제어부를 형성한 메모리 제어 시스템의 블록도이다.
도 4는 본 발명의 한 실시예에 따라 형성된 시리얼 링크를 도시한 도면이다.
도 5는 본 발명의 한 실시예에 따라 데이터를 가진 TLP 요청의 패킷 구조이다.
도 6은 본 발명의 한 실시예에 따라 데이터가 없는 TLP 요청의 패킷 구조이다.
도 7은 본 발명의 한 실시예에 따라 데이터를 가진 TLP 응답의 패킷 구조이다.
도 8은 본 발명의 한 실시예에 따라 상태 정보를 가진 TLP 응답의 패킷 구조이다.
도 9는 본 발명의 한 실시예에 따라 벤더 고유 데이터 링크 계층의 패킷 구조이다.
도 10는 본 발명의 한 실시예에 따른 메모리 인터페이스 방법을 설명하는 흐름도이다.
아래에서는 첨부한 도면을 참고로 하여 본 발명의 실시예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
명세서 전체에서, 어떤 부분이 어떤 구성 요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성 요소를 제외하는 것이 아니라 다른 구성 요소를 더 포함할 수 있는 것을 의미한다.
또한, 명세서에 기재된 "…부", "…모듈" 의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어나 소프트웨어 또는 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다.
이하, 도면을 참조로 하여 본 발명의 실시예에 따른 메모리 제어 시스템 및 이를 이용한 메모리 인터페이스 방법에 대하여 상세히 설명한다.
도 2는 본 발명의 한 실시예에 따른 메모리 제어 시스템의 블록도이다.
도 2를 참고하면, 본 발명의 실시예에 따른 메모리 제어 시스템은 중앙 처리 장치(100), 메모리 제어부(200) 및 메모리(300)를 포함한다. 본 발명의 실시예에 따른 설명을 위해 필요한 개략적인 구성만을 도시할 뿐 이러한 구성에 국한되는 것은 아니다.
중앙 처리 장치(central processing unit, CPU)(100)는 메모리 제어 신호를 생성하고, 생성된 메모리 제어 신호를 메모리 제어부(200)로 전달한다.
그리고, 메모리 제어부(200)는 중앙 처리 장치(100)의 외부에 형성된다. 메모리 제어부(200)는 중앙 처리장치(100)로부터 전달된 메모리 제어 신호를 이용해 메모리(200)의 동작을 제어한다.
그리고, 중앙 처리 장치(100)와 메모리 제어부(200) 사이에는 본 발명의 한 실시예에 따라 시리얼 링크로 이루어진 단일 링크를 형성한다. 그리고, 중앙 처리장치(100)는 상기 단일 링크 통해 메모리 제어부(200)로 메모리 제어 신호를 전송한다.
여기서, 메모리 제어 신호는 메모리(300)를 제어하기 위한 명령어 신호 또는 메모리(300)에 저장된 데이터 중에 어느 하나 이상을 포함한다. 따라서, 본 발명의 한 실시예에 따른 메모리 제어 신호가 명령어 신호와 데이터를 모두 포함하는 경우에, 단일 링크는 하나의 시리얼 패킷으로 상기 명령어 신호 및 상기 데이터를 동시에 전송할 수 있다.
그리고, 메모리(300)는 데이터를 저장하며, 메모리 제어 신호와 같은 외부의 제어 신호에 의해서 동작을 수행한다. 여기서, 본 발명의 한 실시예에 따른 메모리(300)는 DDR SDRAM(double data rate synchronous DRAM)을 포함한다.
또한, 메모리(300)는 비휘발성 메모리(Non-Volatile Memory) 또는 휘발성 메모리(Volatile memory)일 수 있다.
비휘발성 메모리인 플래쉬(flash) 메모리나 이이피롬(EEPROM) 등은 읽기와 쓰기를 주 명령어로 하며, 여타 몇 개의 명령어를 통해 동작을 수행한다.
휘발성 메모리인 SDRAM의 경우에는 읽기와 쓰기 이외에도 리프레쉬(refresh), 프리차지(precharge) 및 액티브(active)의 명령어를 통해 동작을 수행하며, 파워 업(power-up) 상태에서 내부 데이터를 유지하기 위한 기본 동작 명령어가 존재한다.
그리고, 도 2를 참조하면, 메모리 제어부(200)는 중앙 처리 장치(100)의 외부에 형성되고, 중앙 처리 장치(100)와 메모리 제어부(200) 사이에 시리얼 링크가 형성됨을 보여준다.
이 경우 중앙 처리 장치(100)에 의한 메모리 제어 신호는 시리얼 링크를 통해 외장형의 메모리 제어부(200)에 전달되어 메모리 접근을 시도한다.
그리고, 중앙 처리 장치(100)와 메모리 제어부(200) 각각은 트랜잭션 계층(Transaction Layer), 데이터 링크 계층(Data Link Layer) 및 물리 계층(Physical Layer)을 포함한다.
트랜잭션 계층은 시스템 레벨에서 패킷의 송수신의 완결한다. 그리고, 트랜잭션 계층은 시스템에서 생성된 요구 사항(예를 들면, 명령 및 동작)을 패킷화하고, 이를 하위 계층에 전달하여 원격 장치의 트랜잭션 계층에서 이를 받아 패킷의 종결을 통해 지역과 원격 장치 간의 통신을 완결한다. 여기서, 원격 장치는 중앙 처리 장치(100)가 있으며, 트랜잭션을 생성하는 장치이다. 그리고, 지역 장치는 메모리(300)가 있으며, 중앙 처리 장치(100)에 있는 트랜잭션에 상응하여 형성된 장치이다.
도 3은 본 발명의 또 다른 실시예에 따라 중앙 처리 장치 내부에 메모리 제어부를 형성한 메모리 제어 시스템의 블록도이다.
도 3을 참고하면, 본 발명의 또 다른 실시예에 따른 메모리 제어 시스템은 중앙 처리 장치(100), 시리얼 패킷 제어부(400) 및 메모리(300)를 포함한다. 그리고, 중앙 처리 장치(100) 내에는 메모리 제어부(200a)가 포함된다.
중앙 처리 장치(100)에 내장된 메모리 제어부(200a)와 시리얼 패킷 제어부(400) 사이에 시리얼 링크가 형성된다. 이와 같은 경우, 중앙 처리 장치(100)는 내장 메모리 제어부(200a)에 의해 메모리(300)를 제어한다. 그리고, 시리얼 패킷 제어부(400)는 메모리 제어 신호를 수신하여 상기 메모리에 전달한다. 그리고, 시리얼 패킷 제어부(400)는 메모리 제어 신호의 해당 명령에 대한 디코딩을 실행하고, 실행 결과를 패킷화하는 역할을 할 수 있다.
그리고, 중앙 처리 장치(100)와 시리얼 패킷 제어부(400) 각각은 트랜잭션 계층(Transaction Layer), 데이터 링크 계층(Data Link Layer) 및 물리 계층(Physical Layer)을 포함하며, 이와 같은 각 계층의 기능은 위에서 설명하였으므로 생략한다.
도 4는 본 발명의 한 실시예에 따라 형성된 시리얼 링크를 도시한 도면이다.
본 발명의 한 실시예는 도 4에서와 같이 중앙 처리 장치(100)와 주변 기기 간의 통신 병목 현상들을 줄이기 위해 시리얼 링크를 형성한다. 이러한 시리얼 링크 방식은 버스를 사용하지 않고 고속 통신을 할 수 있다는 장점을 가지고 있어 주변 장치에 의한 시스템 성능 저하를 막을 수 있다.
이하, 본 발명의 한 실시예에 따른 명령어 신호 및 시리얼 패킷을 설명하면 다음과 같다.
본 발명의 한 실시예에 따라 DDR SDRAM을 위한 명령어는 위와 같은 계층 구조를 이용하여 구성할 수 있다. 그리고, 표 1은 DDR SDRAM의 명령어를 나타낸다.
Command Type | Abbr. | code(bin) | 형태 | Layer |
Mode Register Set | MRS | 0000 xxxx | posted | TLP |
Refresh | REF | 0001 0000 | posted | TLP |
Self Refresh Entry | SRE | 0001 0001 | posted | DLLP |
Self Refresh Exit | SRX | 0001 0010 | non-posted | TLP |
Single Bank Precharge | PRE | 0010 0000 | posted | DLLP |
Precharge all Banks | PREA | 0010 0001 | posted | DLLP |
Bank Active | ACT | 1000 xxxx | posted | DLLP |
Write(Fixed BL8 or BC4) | WR | 0011 0000 | posted | TLP |
Write(BC4, on the Fly) | WRS4 | 0011 0001 | posted | TLP |
Write(BL8, on the Fly) | WRS8 | 0011 0010 | posted | TLP |
Write with Auto Precharge (Fixed BL8 or BC4) | WRA | 0011 0011 | posted | TLP |
Write with Auto Precharge (BC4, on the Fly) | WRAS4 | 0011 0100 | posted | TLP |
Write with Auto Precharge (BL8, on the Fly) | WRAS8 | 0011 0101 | posted | TLP |
Read(Fixed BL8 or BC4) | RD | 0100 0000 | non-posted | TLP |
Read(BC4, on the Fly) | RDS4 | 0100 0001 | non-posted | TLP |
Read(BL8, on the Fly) | RDS8 | 0100 0010 | non-posted | TLP |
Read with Auto Precharge (Fixed BL8 or BC4) | RDA | 0100 0011 | non-posted | TLP |
Read with Auto Precharge (BC4, on the Fly) | RDAS4 | 0100 0100 | non-posted | TLP |
Read with Auto Precharge (BL8, on the Fly) | RDAS8 | 0100 0101 | non-posted | TLP |
No Operation | NOP | 1111 xxxx | posted | DLLP |
Device Deselected | DES | 0101 xxxx | posted | DLLP |
Power Down Entry | PDE | 0110 0000 | posted | DLLP |
Power Down Exit | PDX | 0110 0001 | non-posted | TLP |
ZQ Calibration Long | ZQCL | 0111 0000 | non-posted | TLP |
ZQ Calibration Short | ZQCS | 0111 0001 | non-posted | TLP |
그리고, 메모리 제어부(200) 또는 시리얼 패킷 제어부(400)를 거쳐 메모리(300)로 전달되는 메모리 제어 신호에는 명령어 신호가 포함된다. 그리고, 이때의 명령어 신호는 응답이 필요한 명령어(Non-posted), 응답이 필요치 않은 명령어(posted), 응답은 필요하나 단순 상태 정보만 필요한 명령어(Non-posted) 및 외부 명령이 필요치 않은 내부 명령어(Null) 중 적어도 하나를 포함할 수 있다.
응답이 필요한 명령어는 읽기(Read)가 대표적이다. 응답이 필요한 명령어는 메모리(300)의 데이터를 읽기 원하는 호스트(host)에 의한 명령에 대해 메모리 데이터를 읽어 이를 다시 호스트에 전달해야 한다.
응답이 필요치 않는 명령어는 쓰기(Write)가 대표적이다. 응답이 필요치 않는 명령어는 호스트에 의해 메모리(300)에 쓸 데이터를 수신하여 이를 메모리(300)에 쓰는 명령이며, 이 경우 응답은 필요치 않다.
응답은 필요하되 단순 상태 정보만 필요한 명령어는 응답을 필요로 한 경우가 있지만, 읽기와 같이 다수의 데이터를 필요치 않고, 다음 명령을 수신할 수 있는 상태 정도를 알려주는 형태의 명령어이다.
외부 명령 자체가 필요치 않는 내부 명령어는 외부에 의한 명령 보다는 내부적인 로직 및 규칙에 따라 자체적은 명령어 생성 및 동작을 수행하는 경우의 명령어이다.
그리고, 본 발명의 한 실시예에 따른 명령어 신호에 따른 인자값은 아래의 표 2과 같이 분류할 수 있다.
Abbreviation | Argument | In/out Data |
MRS | BA, OpCode | x |
PRE | BA | x |
ACT | BA, RA | x |
WR, WRS4, WRS8, WRA, WRAS4, WRAS8, RD, RDS4, RDS8, RDA, RDAS4,RDAS8 | BA, CA | o |
REF, SRE, SRX, PREA, NOP, DES, PDE, PDX, ZQCL, ZQCS | - | x |
여기서, BA(Bank Address), RA(Row Address). CA(Column Address), OpCode(MRS setting value)를 나타낸다.
이 명령들에는 하나 혹은 두 개의 인자를 가지고 있거나, 인자가 없는 경우가 있다. 표 2는 DDR SDRAM의 핀 DQ(Pin DQ)를 통한 입출력 데이터를 "In/out data"로 나타내고, 이와 별도로 BA0~BA2, A15~A0에 입력되는 내용을 인수(Argument)로 하여 나타낸다.
도 5는 본 발명의 한 실시예에 따라 데이터를 가진 TLP 요청의 패킷 구조이고, 도 6은 본 발명의 한 실시예에 따라 데이터가 없는 TLP 요청의 패킷 구조이다.
트랜잭션 계층 패킷(Transaction Layer Packet, 이하 TLP) 요청(Request)은 최상위 계층에서 요구하는 명령으로, 시리얼 링크를 거쳐 원격지의 데이터를 요청하는 패킷 구조이다. 최상위 계층까지 데이터를 전달하고 요청하는 명령은 읽기와 쓰기가 있다. 또한, DDR SDRAM의 상태 정보만을 요구하거나 필요한 명령들이 있다. 그리고, TLP 요청은 데이터를 가지고 있는가에 따라서 도 7과 도 8과 같이 같이 구별할 수 있다.
도 7은 본 발명의 한 실시예에 따라 데이터를 가진 TLP 응답의 패킷 구조이다.
TLP 응답(TLP Complete)은 TLP 요청에 대한 응답의 형식이다. 지역 또는 원격지의 요구사항을 TLP 응답에 실어 전송함으로써, 트랜잭션 계층의 기능을 수행한다. 그리고, TLP 응답 역시 TLP 요청과 같이 읽기와 쓰기에 집중되어 있으며, 도 9와 같이 읽기의 경우 읽은 DDR SDRAM의 데이터를 실어 전송한다.
도 8은 본 발명의 한 실시예에 따라 상태 정보를 가진 TLP 응답의 패킷 구조이다.
도 8은 TLP 요청 중에서 DDR SDRAM의 상태 즉, 새로운 명령 수행이 가능한 상태를 요구하거나 필요한 경우의 TLP 요청이다. DDR SDRAM의 명령은 현재의 명령을 수행하고 해당 명령을 완결 한 후 새로운 명령 수행을 위한 유효 구간이 필요하며, 이를 통보함으로써 호스트에 발생하는 다양한 명령의 수용 여부를 효과적으로 처리할 수 있다.
도 9는 본 발명의 한 실시예에 따라 벤더 고유 데이터 링크 계층의 패킷 구조이다.
데이터 링크 계층 패킷(Data Link Layer Packet, 이하 DLLP)는 송수신 데이터의 무결성을 보장하는 역할을 하는 데이터 링크 계층의 패킷이다. DDR SDRAM의 모든 명령은 트랜잭션 계층까지 전송되지 않더라도, 데이털 링크 계층 에서 처리 할 수 있다. 표 1에서 NOP, DES, PDE, SRE, PREA, ACT, PRE가 여기에 속한다. 또한, 원격지로 해당 상태를 전달하지 않아도 된다.
그리고, DLLP는 데이터 무결성과 연결된 링크의 안정성을 위한 몇가지 패킷들이 존재한다. 이런 패킷 이외에 사용자에 의해 사용할 수 있는 형태로 도 11과 같이 DLLP를 구성할 수 있다.
도 10는 본 발명의 한 실시예에 따른 메모리 인터페이스 방법을 설명하는 흐름도이다. 이때, 이하의 흐름도는 도 2 내지 도 4의 구성과 연계하여 동일한 도면부호를 사용하여 설명한다.
도 10를 참조하면, 메모리 제어부(200)가 명령어 신호와 데이터 중 적어도 하나를 포함하는 시리얼 패킷을 생성한다(S100).
그리고, 메모리 제어부(200)는 생성된 시리얼 패킷을 메모리(300)로 전송하고, 메모리(300)에 상태 정보 또는 데이터를 요청한다(S110). 이때, 메모리 제어부(200)는 도 5 및 도 6과 같은 시리얼 패킷을 전송해 상태 정보나 데이터를 요청할 수 있다.
메모리(300)는 요청된 상태 정보 또는 데이터를 메모리 제어부(200)에 응답한다(S120). 이때, 메모리(300)는 도 7 및 도 8과 같은 시리얼 패킷을 전송해 상태 정보나 데이터를 전송할 수 있다.
그리고, 메모리(300)는 본 발명의 한실시예에 따라 현재의 명령을 수행하여 해당 명령이 완료되고, 새로운 명령 수행을 위한 유효 구간이 필요하면, 새로운 명령 수행을 위한 유효 구간을 통보한다(S130).
이와 같이, 본 발명의 한 실시예에 따른 고속 직렬 통신 기반 메모리 제어기 구현을 위한 인터페이스 방법은 버스를 사용하는 기존의 메모리 접근방식과 달리, 링크를 사용하여 메모리 접근 속도 및 데이터 전송속도의 향상을 가져온다. 그리고, 시리얼 링크의 사용은 물리적인 인터페이스 신호 선의 감소를 유도하여 메모리 확장성이 개선된다.
고속 직렬 통신의 사용은 기존 메모리의 데이터 대역폭을 수 배 이상 향상 시킬 수 있는 장점이 있으며, 중앙 처리 장치의 메모리 접근 속도를 향상 시켜 시스템 전반의 성능 향상을 가져 올 수 있다.
이상에서 설명한 본 발명의 실시예는 장치 및 방법을 통해서만 구현이 되는 것은 아니며, 본 발명의 실시예의 구성에 대응하는 기능을 실현하는 프로그램 또는 그 프로그램이 기록된 기록 매체를 통해 구현될 수도 있다.
이상에서 본 발명의 실시예에 대하여 상세하게 설명하였지만 본 발명의 권리범위는 이에 한정되는 것은 아니고 다음의 청구범위에서 정의하고 있는 본 발명의 기본 개념을 이용한 당업자의 여러 변형 및 개량 형태 또한 본 발명의 권리범위에 속하는 것이다.
100: 중앙 처리 장치 200: 메모리 제어부
300: 메모리 400: 시리얼 패킷 제어부
300: 메모리 400: 시리얼 패킷 제어부
Claims (18)
- 데이터를 저장하는 메모리,
메모리 제어 신호를 통해 상기 메모리의 동작을 제어하는 메모리 제어부, 그리고
상기 메모리 제어부와 단일 링크를 형성하며, 상기 단일 링크 통해 상기 메모리 제어부로 상기 메모리 제어 신호를 전송하는 중앙 처리 장치
를 포함하는 메모리 제어 시스템. - 제1항에서,
상기 메모리 제어 신호는, 명령어 신호와 데이터를 포함하며,
상기 단일 링크는,
하나의 시리얼 패킷으로 상기 명령어 신호 및 상기 데이터를 동시에 전송하는 메모리 제어 시스템. - 제2항에서,
상기 명령어 신호는,
응답이 필요한 명령어, 응답이 필요치 않은 명령어, 응답은 필요하나 단순 상태 정보만 필요한 명령어 및 외부 명령이 필요치 않은 내부 명령어 중 적어도 하나를 포함하는 메모리 제어 시스템. - 제2항에서,
상기 시리얼 패킷은,
트랜잭션 계층 패킷(Transaction Layer Packet, TLP) 또는 데이터 링크 계층 패킷(Data Link Layer Packet, DLLP)의 요청 및 응답 명령어 중 적어도 하나를 포함하는 메모리 제어 시스템. - 제1항에서,
상기 메모리 제어부 및 상기 중앙 처리 장치는,
명령 및 동작을 패킷화하는 트랜잭션 계층(Transaction Layer),
상기 트랜잭션 계층에서 생성된 시리얼 패킷을 회로를 통해 아날로그적으로 전달하는 물리 계층(Physical Layer), 그리고
상기 물리 계층을 이용하여 데이터를 전달하는 데이터 링크 계층(Data Link Layer)을 포함하는 메모리 제어 시스템. - 제5항에서,
상기 단일 링크는,
시리얼 링크를 포함하며, 상기 메모리 제어부 및 상기 중앙 처리 장치의 물리 계층을 통해서 상기 시리얼 링크가 연결되는 메모리 제어 시스템. - 데이터를 저장하는 메모리,
메모리 제어 신호를 생성하여 상기 메모리의 동작을 제어하는 중앙 처리 장치, 그리고
메모리 제어 신호를 수신하여 상기 메모리에 전달하는 시리얼 패킷 제어부
를 포함하는 메모리 제어 시스템. - 제7항에서,
상기 중앙 처리 장치는,
메모리 제어 신호를 생성하는 메모리 제어부를 포함하며,
상기 메모리 제어부와 상기 시리얼 패킷 제어부 사이에는 시리얼 링크가 형성되고, 상기 시리얼 링크를 통해 상기 메모리 제어 신호가 상기 시리얼 패킷 제어부로 전달되는 메모리 제어 시스템. - 제7항에서,
상기 메모리는,
읽기와 쓰기를 주 명령어로 하여 동작을 수행하는 플래시 메모리 또는 이이피롬(EEPROM) 중 적어도 하나의 비휘발성 메모리를 포함하는 메모리 제어 시스템. - 제7항에서,
상기 메모리는,
읽기와 쓰기 동작을 수행하며, 내부 데이터를 유지하기 위한 리프레쉬(refresh), 프리차지(precharge) 및 액티브(active)의 명령어를 통해 동작을 수행하는 휘발성 메모리를 포함하는 메모리 제어 시스템. - 제7항에서,
상기 시리얼 패킷 제어부는,
명령 및 동작을 패킷화하는 트랜잭션 계층(Transaction Layer),
상기 트랜잭션 계층에서 생성된 시리얼 패킷을 회로를 통해 아날로그적으로 전달하는 물리 계층(Physical Layer), 그리고
상기 물리 계층을 이용하여 데이터를 전달하는 데이터 링크 계층(Data Link Layer)을 포함하는 메모리 제어 시스템. - 제11항에서,
상기 시리얼 패킷은,
명령어 신호와 데이터 중 적어도 하나를 포함하는 시리얼 패킷을 포함하는 메모리 제어 시스템. - 제7항에서,
상기 시리얼 패킷 제어부는,
상기 메모리 제어부의 명령어에 대한 디코딩을 실행하고, 실행 결과를 패킷화하는 메모리 제어 시스템. - 메모리 제어부가 메모리의 동작을 제어하는 메모리 인터페이스 방법에 있어서,
상기 메모리 제어부가 명령어 신호와 데이터 중 적어도 하나를 포함하는 시리얼 패킷을 생성하는 단계,
상기 메모리 제어부가 상기 시리얼 패킷을 상기 메모리로 전송하고, 상기 메모리에 상태 정보 또는 데이터를 요청하는 단계, 그리고
상기 메모리가 상기 상태 정보 또는 상기 데이터를 메모리 제어부에 응답하는 단계
를 포함하는 메모리 인터페이스 방법. - 제14항에서,
새로운 명령 수행을 위한 유효 구간을 통보하는 단계를 더 포함하는 메모리 인터페이스 방법. - 제14항에서,
상기 상태 정보 또는 데이터를 요청하는 단계는,
단일 링크로 상기 상태 정보 또는 상기 데이터 전송하는 메모리 인터페이스 방법. - 제16항에서,
상기 단일 링크는,
시리얼 링크를 포함하며, 상기 메모리 제어부와 상기 메모리 사이에 형성되는 메모리 인터페이스 방법. - 제14항에서,
상기 시리얼 패킷은,
트랜잭션 계층 패킷(Transaction Layer Packet, TLP)의 요청 및 응답 명령어를 포함하는 메모리 인터페이스 방법.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020130069253A KR20140146469A (ko) | 2013-06-17 | 2013-06-17 | 메모리 제어 시스템 및 이를 이용한 메모리 인터페이스 방법 |
US14/039,884 US20140372669A1 (en) | 2013-06-17 | 2013-09-27 | Memory control system and memory interface method using the same |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020130069253A KR20140146469A (ko) | 2013-06-17 | 2013-06-17 | 메모리 제어 시스템 및 이를 이용한 메모리 인터페이스 방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20140146469A true KR20140146469A (ko) | 2014-12-26 |
Family
ID=52020273
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020130069253A KR20140146469A (ko) | 2013-06-17 | 2013-06-17 | 메모리 제어 시스템 및 이를 이용한 메모리 인터페이스 방법 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20140372669A1 (ko) |
KR (1) | KR20140146469A (ko) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20170102730A (ko) * | 2016-03-02 | 2017-09-12 | 한국전자통신연구원 | 메모리 인터페이스 장치 |
KR20170119394A (ko) * | 2016-04-19 | 2017-10-27 | 에스케이하이닉스 주식회사 | 미디어 컨트롤러 및 이를 포함한 데이터 저장 장치 |
USRE49496E1 (en) | 2015-07-30 | 2023-04-18 | SK Hynix Inc. | Semiconductor device |
US11755255B2 (en) | 2014-10-28 | 2023-09-12 | SK Hynix Inc. | Memory device comprising a plurality of memories sharing a resistance for impedance matching |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10817200B2 (en) | 2017-10-26 | 2020-10-27 | Silicon Laboratories Inc. | Memory interface for a secure NOR flash memory |
WO2020091771A1 (en) * | 2018-10-31 | 2020-05-07 | Redpine Signals, Inc. | Memory interface for a secure nor flash memory |
US11190188B2 (en) | 2019-12-12 | 2021-11-30 | Electronics And Telecommunications Research Institute | Memory interface circuit including output impedance monitor and method of calibrating output impedance thereof |
-
2013
- 2013-06-17 KR KR1020130069253A patent/KR20140146469A/ko not_active Application Discontinuation
- 2013-09-27 US US14/039,884 patent/US20140372669A1/en not_active Abandoned
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11755255B2 (en) | 2014-10-28 | 2023-09-12 | SK Hynix Inc. | Memory device comprising a plurality of memories sharing a resistance for impedance matching |
USRE49496E1 (en) | 2015-07-30 | 2023-04-18 | SK Hynix Inc. | Semiconductor device |
KR20170102730A (ko) * | 2016-03-02 | 2017-09-12 | 한국전자통신연구원 | 메모리 인터페이스 장치 |
KR20170119394A (ko) * | 2016-04-19 | 2017-10-27 | 에스케이하이닉스 주식회사 | 미디어 컨트롤러 및 이를 포함한 데이터 저장 장치 |
Also Published As
Publication number | Publication date |
---|---|
US20140372669A1 (en) | 2014-12-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11681579B2 (en) | Semiconductor memory devices and memory systems including the same | |
CN107924693B (zh) | 多区块系统中的可编程的片上端接定时 | |
KR20140146469A (ko) | 메모리 제어 시스템 및 이를 이용한 메모리 인터페이스 방법 | |
KR102249416B1 (ko) | 메모리 시스템 및 메모리 시스템의 구동 방법 | |
KR102076196B1 (ko) | 메모리 시스템, 메모리 모듈 및 메모리 모듈의 동작 방법 | |
KR102444201B1 (ko) | 플랫폼 마지닝 및 디버그를 위한 소프트웨어 모드 레지스터 액세스 | |
US7299323B2 (en) | Memory controller having a read-modify-write function | |
JP5430484B2 (ja) | 半導体記憶装置、及びその制御方法 | |
KR20190019209A (ko) | Ddr 메모리 에러 복구 | |
JP2022537464A (ja) | パーシステントメモリシステム等のデータ完全性 | |
WO2017165042A1 (en) | Multi-level memory management | |
US20160299719A1 (en) | Memory device and method for data exchanging thereof | |
US9607667B1 (en) | Memory device and electronic apparatus including the same | |
US20110035537A1 (en) | Multiprocessor system having multi-command set operation and priority command operation | |
US9275692B2 (en) | Memory, memory controllers, and methods for dynamically switching a data masking/data bus inversion input | |
JP2023543426A (ja) | Dramのリフレッシュ管理リスト | |
US10908840B2 (en) | Semiconductor memory module including nonvolatile memory devices | |
US11157183B2 (en) | Memory controller | |
KR102334739B1 (ko) | 메모리 모듈, 시스템, 및 그것의 에러 정정 방법 | |
KR20230043692A (ko) | 메모리 모듈 데이터 폭의 유연한 구성을 위한 인에이블링 로직 | |
US20130086335A1 (en) | Memory system and memory interface device | |
KR102617843B1 (ko) | 메모리 시스템 및 이의 동작 방법 | |
US9081673B2 (en) | Microprocessor and memory access method | |
US9263112B2 (en) | Semiconductor integrated circuit | |
JP2004127305A (ja) | メモリ制御装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
WITN | Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid |