KR20140146469A - 메모리 제어 시스템 및 이를 이용한 메모리 인터페이스 방법 - Google Patents

메모리 제어 시스템 및 이를 이용한 메모리 인터페이스 방법 Download PDF

Info

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
Application number
KR1020130069253A
Other languages
English (en)
Inventor
권혁제
최용석
Original Assignee
한국전자통신연구원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한국전자통신연구원 filed Critical 한국전자통신연구원
Priority to KR1020130069253A priority Critical patent/KR20140146469A/ko
Priority to US14/039,884 priority patent/US20140372669A1/en
Publication of KR20140146469A publication Critical patent/KR20140146469A/ko

Links

Images

Classifications

    • 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/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • 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
    • 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
    • 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
    • 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/38Information 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

메모리 제어 시스템 및 이를 이용한 메모리 인터페이스 방법{MEMORY CONTROL SYSTEM AND METHOD FOR MEMORY INTERFACE USING THE SAME}
본 발명은 메모리 제어 시스템 및 이를 이용한 메모리 인터페이스 방법에 관한 것이다.
일반적으로 외장형 메모리는 중앙 처리 장치(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는 본 발명의 한 실시예에 따른 메모리 제어 시스템의 블록도이다.
도 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: 시리얼 패킷 제어부

Claims (18)

  1. 데이터를 저장하는 메모리,
    메모리 제어 신호를 통해 상기 메모리의 동작을 제어하는 메모리 제어부, 그리고
    상기 메모리 제어부와 단일 링크를 형성하며, 상기 단일 링크 통해 상기 메모리 제어부로 상기 메모리 제어 신호를 전송하는 중앙 처리 장치
    를 포함하는 메모리 제어 시스템.
  2. 제1항에서,
    상기 메모리 제어 신호는, 명령어 신호와 데이터를 포함하며,
    상기 단일 링크는,
    하나의 시리얼 패킷으로 상기 명령어 신호 및 상기 데이터를 동시에 전송하는 메모리 제어 시스템.
  3. 제2항에서,
    상기 명령어 신호는,
    응답이 필요한 명령어, 응답이 필요치 않은 명령어, 응답은 필요하나 단순 상태 정보만 필요한 명령어 및 외부 명령이 필요치 않은 내부 명령어 중 적어도 하나를 포함하는 메모리 제어 시스템.
  4. 제2항에서,
    상기 시리얼 패킷은,
    트랜잭션 계층 패킷(Transaction Layer Packet, TLP) 또는 데이터 링크 계층 패킷(Data Link Layer Packet, DLLP)의 요청 및 응답 명령어 중 적어도 하나를 포함하는 메모리 제어 시스템.
  5. 제1항에서,
    상기 메모리 제어부 및 상기 중앙 처리 장치는,
    명령 및 동작을 패킷화하는 트랜잭션 계층(Transaction Layer),
    상기 트랜잭션 계층에서 생성된 시리얼 패킷을 회로를 통해 아날로그적으로 전달하는 물리 계층(Physical Layer), 그리고
    상기 물리 계층을 이용하여 데이터를 전달하는 데이터 링크 계층(Data Link Layer)을 포함하는 메모리 제어 시스템.
  6. 제5항에서,
    상기 단일 링크는,
    시리얼 링크를 포함하며, 상기 메모리 제어부 및 상기 중앙 처리 장치의 물리 계층을 통해서 상기 시리얼 링크가 연결되는 메모리 제어 시스템.
  7. 데이터를 저장하는 메모리,
    메모리 제어 신호를 생성하여 상기 메모리의 동작을 제어하는 중앙 처리 장치, 그리고
    메모리 제어 신호를 수신하여 상기 메모리에 전달하는 시리얼 패킷 제어부
    를 포함하는 메모리 제어 시스템.
  8. 제7항에서,
    상기 중앙 처리 장치는,
    메모리 제어 신호를 생성하는 메모리 제어부를 포함하며,
    상기 메모리 제어부와 상기 시리얼 패킷 제어부 사이에는 시리얼 링크가 형성되고, 상기 시리얼 링크를 통해 상기 메모리 제어 신호가 상기 시리얼 패킷 제어부로 전달되는 메모리 제어 시스템.
  9. 제7항에서,
    상기 메모리는,
    읽기와 쓰기를 주 명령어로 하여 동작을 수행하는 플래시 메모리 또는 이이피롬(EEPROM) 중 적어도 하나의 비휘발성 메모리를 포함하는 메모리 제어 시스템.
  10. 제7항에서,
    상기 메모리는,
    읽기와 쓰기 동작을 수행하며, 내부 데이터를 유지하기 위한 리프레쉬(refresh), 프리차지(precharge) 및 액티브(active)의 명령어를 통해 동작을 수행하는 휘발성 메모리를 포함하는 메모리 제어 시스템.
  11. 제7항에서,
    상기 시리얼 패킷 제어부는,
    명령 및 동작을 패킷화하는 트랜잭션 계층(Transaction Layer),
    상기 트랜잭션 계층에서 생성된 시리얼 패킷을 회로를 통해 아날로그적으로 전달하는 물리 계층(Physical Layer), 그리고
    상기 물리 계층을 이용하여 데이터를 전달하는 데이터 링크 계층(Data Link Layer)을 포함하는 메모리 제어 시스템.
  12. 제11항에서,
    상기 시리얼 패킷은,
    명령어 신호와 데이터 중 적어도 하나를 포함하는 시리얼 패킷을 포함하는 메모리 제어 시스템.
  13. 제7항에서,
    상기 시리얼 패킷 제어부는,
    상기 메모리 제어부의 명령어에 대한 디코딩을 실행하고, 실행 결과를 패킷화하는 메모리 제어 시스템.
  14. 메모리 제어부가 메모리의 동작을 제어하는 메모리 인터페이스 방법에 있어서,
    상기 메모리 제어부가 명령어 신호와 데이터 중 적어도 하나를 포함하는 시리얼 패킷을 생성하는 단계,
    상기 메모리 제어부가 상기 시리얼 패킷을 상기 메모리로 전송하고, 상기 메모리에 상태 정보 또는 데이터를 요청하는 단계, 그리고
    상기 메모리가 상기 상태 정보 또는 상기 데이터를 메모리 제어부에 응답하는 단계
    를 포함하는 메모리 인터페이스 방법.
  15. 제14항에서,
    새로운 명령 수행을 위한 유효 구간을 통보하는 단계를 더 포함하는 메모리 인터페이스 방법.
  16. 제14항에서,
    상기 상태 정보 또는 데이터를 요청하는 단계는,
    단일 링크로 상기 상태 정보 또는 상기 데이터 전송하는 메모리 인터페이스 방법.
  17. 제16항에서,
    상기 단일 링크는,
    시리얼 링크를 포함하며, 상기 메모리 제어부와 상기 메모리 사이에 형성되는 메모리 인터페이스 방법.
  18. 제14항에서,
    상기 시리얼 패킷은,
    트랜잭션 계층 패킷(Transaction Layer Packet, TLP)의 요청 및 응답 명령어를 포함하는 메모리 인터페이스 방법.
KR1020130069253A 2013-06-17 2013-06-17 메모리 제어 시스템 및 이를 이용한 메모리 인터페이스 방법 KR20140146469A (ko)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Cited By (4)

* Cited by examiner, † Cited by third party
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