KR100934227B1 - 개방형 시리얼 정합 방식을 이용한 메모리 스위칭 컨트롤장치, 그의 동작 방법 및 이에 적용되는 데이터 저장 장치 - Google Patents

개방형 시리얼 정합 방식을 이용한 메모리 스위칭 컨트롤장치, 그의 동작 방법 및 이에 적용되는 데이터 저장 장치 Download PDF

Info

Publication number
KR100934227B1
KR100934227B1 KR1020070096879A KR20070096879A KR100934227B1 KR 100934227 B1 KR100934227 B1 KR 100934227B1 KR 1020070096879 A KR1020070096879 A KR 1020070096879A KR 20070096879 A KR20070096879 A KR 20070096879A KR 100934227 B1 KR100934227 B1 KR 100934227B1
Authority
KR
South Korea
Prior art keywords
memory
matching
data
unit
packet
Prior art date
Application number
KR1020070096879A
Other languages
English (en)
Other versions
KR20090031058A (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 한국전자통신연구원
Priority to KR1020070096879A priority Critical patent/KR100934227B1/ko
Priority to US12/150,953 priority patent/US8612713B2/en
Publication of KR20090031058A publication Critical patent/KR20090031058A/ko
Application granted granted Critical
Publication of KR100934227B1 publication Critical patent/KR100934227B1/ko

Links

Images

Classifications

    • 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
    • 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
    • G06F12/0646Configuration or reconfiguration
    • 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/1652Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
    • G06F13/1657Access to multiple memories

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Information Transfer Systems (AREA)

Abstract

본 발명은 메모리와 메모리 컨트롤 장치 사이의 데이터 송수신에 있어 유연성, 신뢰성, 가용성, 그리고 성능을 높이기 위한 개방형 시리얼 정합 방식을 이용한 메모리 스위칭 컨트롤 장치, 그의 동작 방법 및 이에 적용되는 데이터 저장 장치에 관한 것으로서, 상기 메모리 스위칭 컨트롤 장치는, 하나 이상의 프로세싱 유닛과의 정합을 수행하는 하나 이상의 프로세서 정합부; 각각 개방형 시리얼 방식의 메모리 정합 포트를 구비하며 해당 메모리 정합 포트에 연결되는 데이터 저장 장치들과의 시리얼 방식으로 정합하는 하나 이상의 메모리 정합부; 및 상기 하나 이상의 메모리 정합부에 대하여 각각 설정되어, 상기 메모리 정합부 각각에 대한 상기 하나 이상의 프로세서 정합부의 사용을 독립적으로 중재하는 복수의 중재부를 포함하여 이루어진다.
메모리, 메모리 인터페이스, 메모리 스위칭 컨트롤 장치, 시리얼 정합, 프로세서, 프로세싱 유닛,

Description

개방형 시리얼 정합 방식을 이용한 메모리 스위칭 컨트롤 장치, 그의 동작 방법 및 이에 적용되는 데이터 저장 장치{Memory switching control apparatus using open serial interface, operating method thereof, and data storage device therefor}
본 발명은 메모리와 프로세싱 유닛 사이의 데이터 송수신 처리에 있어서의 유연성, 신뢰성, 가용성, 그리고 성능을 높인 개방형 시리얼 정합 방식을 이용한 메모리 스위칭 컨트롤 장치 및 그의 동작 방법에 관한 것이다.
본 발명은 정보통신부 및 정보통신연구진흥원의 IT신성장동력핵심기술개발사업의 일환으로 수행한 연구로부터 도출된 것이다[과제관리번호: 2006-S-061-02, 과제명: IPv6 기반의 QoS 서비스 및 단말 이동성 지원 라우터 기술].
일반적으로 퍼스널 컴퓨터(PC), 임베디드 시스템(Embeded system), 휴대폰 등의 포터블 기기 등과 같이 프로세싱 유닛을 포함하는 장치들에는, 프로세서 코드 및 데이터, 부팅 프로그램 및 운용 시스템(OS), 애플리케이션, 사용자 정보, 로그 데이터 등을 저장하는 데이터 저장 장치가 존재하며, 상기 프로세싱 유닛은 상기 데이터 저장 장치로부터 프로세서 코드 및 데이터, 부팅 프로그램 및 운용 시스템, 애플리케이션, 사용자 정보, 로그 데이터들을 불러와 이를 바탕으로 구동한다.
상기와 같이 데이터 저장 장치에는 해당 장치의 성능을 좌우하는 프로세싱 유닛을 구동하기 위한 기초 정보 및 데이터가 저장되기 때문에, 상기 데이터 저장 장치와 프로세싱 유닛과의 인터페이스 문제는 중요하다. 그러나 고가용성을 요구하는 서버 시스템, 임베디드 시스템 등에 있어서, 상기 데이터 저장 장치에서의 문제 유발 확률이 다른 디바이스에 비해 상대적으로 높은 편이다.
더하여, 상기 데이터 저장 장치로서, DRAM, SRAM을 포함하는 다양한 종류의 메모리와, 하드 디스크 등이 포함될 수 있으며, 그 종류는 점점 더 다양해지고 있다. 특히, 최근에는 반도체 기술의 발전과 함께 응용 제품의 소형화 및 저전력화를 위하여, 고속 내지 저속의 다양한 메모리 소자를 하나의 패키지 안에 내장한 제품이 등장하고 있다.
또한, 최근 프로세싱 유닛이 점점 더 고속화되고 병렬화되면서, 높은 대역의 안정된 메모리 액세스 요청, 고속 입출력(IO) 인터페이스에 존재하는 각종 컨트롤러의 메모리 액세스 요청, 내장형 프로세싱 유닛 또는 프로세싱 유닛 집합의 메모리 액세스 요청 등이 발생하게 되었다.
이에 프로세싱 유닛의 고속화 및 병렬화로 인한 다양한 요청을 수용하고, 다양한 여러 종류의 데이터 저장 장치에 대한 프로세싱 유닛의 접근을 용이하게 하기 위한 다양한 메모리 인터페이스 기술이 연구되고 있다.
그 중의 하나로서, 현재 고성능 프로세싱 유닛의 제한 없는 메모리 액세스를 위한 고속의 병렬 메모리 인터페이스가 존재하고 있으며, 그 속도를 높이려는 노력이 이루어지고 있다.
그러나 기존에 제안된 병렬 메모리 인터페이스는, PCB 기판에서 구현되기 때문에, 구현가능한 최고 속도에 한계가 있다. 또한, 고 대역의 클럭이 포함된 병렬 인터페이스에서의 데이터와 클럭간의 동기를 맞추기 위해 많은 노력과 수고가 요구된다. 또한, 열과 물리적인 충격과 진동 등으로 인해 신호의 특성이 조금씩 달라지면서 병렬 데이터들 간의 동기 및 데이터와 클럭간의 동기가 맞지 않거나 불안정해지는 현상이 나타난다. 이를 보완하기 위해 상기 고속 병렬 메모리 인터페이스에서 각종 버퍼 장치들을 사용할 수 있으나, 기존 병렬 메모리 인터페이스 방식의 한계로 인해 메모리 인터페이스 설계의 어려움은 여전히 존재하고 있고, 그 강도는 점점 높아지고 있다.
또한, 복수의 데이터 저장 장치가 사용되는 경우, 단일 인터페이스 하나를 통해 인터페이스하는 방식으로는 데이터의 병목 현상과 입출력 딜레이 증가를 막기 어렵다. 또한, 상술한 병렬 인터페이스 방식을 적용하더라도, 이종의 메모리 소자 각각에 대해 인터페이스를 할당하게 될 때, 메모리 소자의 종류에 따라 다른 인터페이스를 사용하여야 하므로, 메모리 인터페이스 설계와 구현의 복잡성이 높아지고, 핀 수가 증가하는 문제점이 있다.
또한, 프로세싱 유닛을 포함하는 일반적인 프로세서 기반 장치에 있어서, 프로세싱 유닛이 OS와 애플리케이션을 구동하는데 사용하는 필수 메모리 공간의 위치 는 대부분 고정되어 있다. 따라서, 메모리 인터페이스 또는 해당 인터페이스에 물려 있는 메모리에 고장이 발생한 경우, 프로세싱 유닛이 동작하지 못하여 시스템 전체가 멈추게 되는 치명적인 상황이 발생할 수 있다.
더하여, 최근 고속의 IO 인터페이스가 등장하고 있으며, 이에 따라서 상기 고속 IO 인터페이스에 연결된 장치에 구비된 프로세싱 유닛의 시스템 메모리 사용 요청이 높아지고 있다. 따라서, 메인 프로세싱 유닛의 메모리 사용 요청과 상기 IO 인터페이스 측의 메모리 사용 요청이 동시 다발적으로 이루어질 수 있으며, 이에 따라 메모리 사용을 효과적으로 분산 시킬 수 있는 방법이 요구된다.
예를 들어, 이더넷 컨트롤러가 연결된 PCI 측에서 시스템 메모리의 액세스 요청을 보낼 때, 메인 프로세싱 유닛이 애플리케이션을 구동하기 위해 이더넷 컨트롤러가 요청한 메모리 내지 메모리 인터페이스 쪽에서 프로그램 코드를 읽으려 하면 두 개의 액세스 요청 발생으로 인해 어느 한 프로세싱 유닛이 기다리거나, 요청을 취소해야 하는 일이 발생할 수 있다.
이에 본 발명은, 메모리 인터페이스를 구현하는데 있어서 복수의 데이터 저장 장치가 사용됨에 따른 데이터의 병목 현상과 입출력 지연 문제, 메모리 인터페이스 설계와 구현의 복잡성이 높아지는 문제를 해결하고자 한다.
또한, 본 발명은 메모리 인터페이스 또는 해당 인터페이스에 물려 있는 메모리에 고장이 발생하더라도 프로세싱 유닛의 안정된 동작을 보장할 수 있도록 메모리 인터페이스가 차지하는 어드레싱 공간의 유연한 변경 요구를 해결하고자 한다.
또한, 본 발명은 메인 프로세싱 유닛의 메모리 사용 요청과 상기 IO 인터페이스측의 메모리 사용 요청이 동시 다발적으로 이루어지는 경우, 특정 요청이 지연되거나 중단되는 문제를 해결하고자 한다.
더하여, 본 발명은 동일 규격의 시리얼 정합 방식으로 이종의 데이터 저장 장치를 연결 가능하게 하고, 메모리 정합 포트별로 독립된 데이터 입출력이 가능하게 하며, 메모리 정합 포트의 어드레싱 공간의 위치를 가변 가능하게 하고, 시리얼 정합라인의 폭을 가변 가능하게 함으로써, 메모리와 메모리 컨트롤 장치 사이의 데이터 송수신에 있어 유연성, 신뢰성, 가용성, 그리고 성능을 높이고자 한다.
상기 과제를 해결하기 위한 수단으로서, 본 발명의 일 실시 형태에 의한 개방형 시리얼 정합 방식을 이용한 메모리 스위칭 컨트롤 장치는,
하나 이상의 프로세싱 유닛과의 정합을 수행하는 하나 이상의 프로세서 정합부;
각각 개방형 시리얼 방식의 메모리 정합 포트를 구비하며 해당 메모리 정합 포트에 연결되는 데이터 저장 장치들과의 시리얼 방식으로 정합하는 하나 이상의 메모리 정합부; 및
상기 하나 이상의 메모리 정합부에 대하여 각각 설정되어, 상기 메모리 정합부 각각에 대한 상기 하나 이상의 프로세서 정합부의 사용을 독립적으로 중재하는 복수의 중재부를 포함하여 이루어진다.
상기 메모리 스위칭 컨트롤 장치는, 상기 하나 이상의 메모리 정합부 별로 할당된 메모리 시작 주소와, 해당 메모리 정합 포트에 연결된 데이터 저장 장치의 메모리 크기 또는 할당된 메모리 끝 주소, 상기 메모리 정합부의 상태 정보를 관리하는 메모리 포트 테이블을 더 포함할 수 있다.
그리고, 상기 메모리 정합부는, 상기 연결된 데이터 저장 장치의 요구 대역폭에 맞추어 정합 라인의 수가 가변되는 것을 특징으로 한다.
본 발명의 다른 실시 형태에 따르면, 복수의 프로세싱 유닛에 각각 연결되는 복수의 프로세서 정합부와, 복수의 데이터 저장 장치에 각각 연결되는 복수의 메모리 정합부 및 상기 복수의 메모리 정합부에 대한 사용을 각각 중재하는 복수의 중재부를 포함하는 개방형 시리얼 정합 방식을 메모리 스위칭 컨트롤 장치의 동작 방법에 있어서, 초기화 동작이 시작되면, 상기 메모리 정합부들이 각각 최저 속도로 정합 라인을 가동하여, 가용할 수 있는 정합 라인의 수를 확인하는 단계; 상기 확 인된 가용할 수 있는 정합 라인의 최고 속도를 확인하는 단계; 및 상기 확인된 가용할 수 있는 모든 정합 라인을 상기 확인된 최고 속도로 가동하여, 정상 동작하는 지를 확인하는 단계; 상기 정상 동작하는 것으로 확인된 정합 라인별로 데이터 지연을 측정하여, 상기 라인간 지연을 보상하는 단계; 상기 정상 동작하는 정합 라인에 연결된 데이터 저장 장치에 대하여 메모리 테스트를 수행하는 단계; 및 상기 테스트 결과가 정상이면, 해당 데이터 저장 장치에 매핑되는 시스템 어드레싱 공간을 메모리 정합부별로 할당하여, 메모리 포트 테이블에 등록하는 단계를 포함한다.
상기 개방형 시리얼 정합 방식을 메모리 스위칭 컨트롤 장치의 동작 방법은, 임의의 프로세싱 유닛으로부터 읽기 요청이 발생하면, 해당 프로세서 정합부가 상기 프로세싱 유닛으로부터 읽기 요청된 메모리 주소 및 제어 신호 등을 버퍼링하는 단계; 상기 프로세서 정합부가 상기 버퍼링된 메모리 주소 정보를 이용하여 현재 등록된 메모리 포트 테이블에서 데이터를 읽어올 메모리 정합부를 확인하는 단계;
상기 프로세서 정합부가 상기 확인된 메모리 정합부의 중재부로 메모리 정합 포트에 대한 사용을 요청하는 단계; 상기 중재부가 상기 메모리 정합부의 사용 가능 여부 및 상기 프로세서 정합부의 우선 순위를 고려하여 메모리 정합 포트 사용권을 할당하는 단계; 상기 할당에 의하여, 상기 프로세서 정합부에 버퍼링하고 있던 메모리 주소 및 제어 신호를 상기 메모리 정합부를 통해 데이터 저장 장치로 인가하는 단계; 상기 메모리 정합부가 상기 데이터 저장 장치로부터 읽기 요청된 데이터를 수신하는 단계; 상기 중재부가 상기 메모리 정합부가 수신한 데이터를 요청한 프로세서 정합부를 확인하는 단계; 상기 확인된 프로세서 정합부로 상기 메모리 정합부에서 수신한 데이터를 전달하는 단계; 및 상기 프로세서 정합부가 상기 데이터를 수신하여 해당 프로세싱 유닛으로 전달하는 단계를 더 포함할 수 있다.
또한, 상기 개방형 시리얼 정합 방식을 메모리 스위칭 컨트롤 장치의 동작 방법은, 임의의 프로세싱 유닛에서 메모리 쓰기 요청이 발생하면, 상기 프로세싱 유닛에 연결된 프로세서 정합부가 상기 프로세싱 유닛으로부터 쓰기 요청된 메모리 주소, 제어 신호, 및 메모리에 쓰여질 데이터 등을 버퍼링하는 단계; 상기 프로세서 정합부가 상기 버퍼링된 메모리 주소를 이용하여, 상기 메모리 포트 테이블을 검색하여, 해당 메모리 주소에 대응하는 메모리 정합부를 확인하는 단계; 상기 프로세서 정합부가 상기 확인된 메모리 정합부의 중재부로 메모리 정합 포트에 대한 사용권을 요청하는 단계; 상기 중재부가 상기 메모리 정합부의 사용 가능 여부, 상기 프로세서 정합부의 우선 순위를 고려하여, 메모리 정합 포트에 대한 사용권을 할당하는 단계; 상기 사용권을 할당받은 프로세서 정합부에서 버퍼링하고 있던 데이터, 메모리 주소, 제어 신호가 상기 메모리 정합부로 전달되는 단계; 및 상기 메모리 정합부가 상기 데이터, 메모리 주소, 제어 신호를 데이터 저장 장치로 전송하여, 쓰기 요청하는 단계를 더 포함할 수 있다.
또한 본 발명의 다른 실시 형태에 따르면, 하나 이상의 메모리 소자; 및 상기 하나 이상의 메모리 소자에 각각 또는 공동으로 연결되는 개방형 시리얼 방식의 메모리 정합 포트를 구비하며, 해당 메모리 정합 포트에 연결되는 정합 라인을 통해 사전에 설정된 형식의 데이터를 수신하여 상기 메모리 소자에 전달하거나 상기 메모리 소자에서 읽어들인 데이터를 상기 사전에 설정된 형식으로 변환하여 상기 메모리 정합 포트로 출력하는 하나 이상의 메모리 정합부를 포함하는 데이터 저장 장치를 제공한다.
상술한 바에 의하면, 본 발명은, 동일 규격의 시리얼 정합 방식에 의해 다양한 종류의 데이터 저장 장치를 연결할 수 있어 메모리 및 메모리 스위칭 컨트롤 장치의 사용에 있어서의 유연성을 높일 수 있으며, 각 메모리 정합 포트별로 독립된 데이터 입출력이 가능하여 메모리 인터페이스의 병목 현상을 줄일 수 있으며, 메모리 정합 포트별 어드레싱 공간의 위치를 가변할 수 있어 메모리 변경 및 교체에 따른 전체 메모리 어드레싱 공간 배치를 유연하게 할 수 있으며, 특정 메모리의 고장에 대한 대처가 용이하며, 시리얼 정합 라인의 폭을 가변할 수 있어 다양한 데이터 저장 장치의 정합이 가능하다는 우수한 효과가 있다.
이하 첨부된 도면을 참조하여 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명을 용이하게 실시할 수 있는 바람직한 실시 예를 상세히 설명한다. 다만, 본 발명의 바람직한 실시 예에 대한 동작 원리를 상세하게 설명함에 있어 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략한다.
또한, 도면 전체에 걸쳐 유사한 기능 및 작용을 하는 부분에 대해서는 동일한 도면 부호를 사용한다.
덧붙여, 명세서 전체에서, 어떤 부분이 다른 부분과 '연결'되어 있다고 할때, 이는 '직접적으로 연결'되어 있는 경우뿐만 아니라, 그 중간에 다른 소자를 사이에 두고 '간접적으로 연결'되어 있는 경우도 포함한다. 또한 어떤 구성 요소를 '포함'한다는 것은, 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라, 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
본 발명에 의한 메모리 스위칭 컨트롤 장치는, 메모리를 포함하는 하나 이상의 데이터 저장 장치와 하나 이상의 프로세싱 유닛(도시생략)의 연결을 중재하고, 상기 복수의 데이터 저장 장치별로 독립된 액세스가 가능하도록 독립된 메모리 정합 포트와 중재수단을 구비하여, 각 프로세싱 유닛의 메모리 사용을 분산시킨다.
여기서, 상기 프로세싱 유닛은 상기 메모리 스위칭 컨트롤 장치와 동일 장치에 내장되어 상기 메모리 스위칭 컨트롤 장치와 직접 연결될 수도 있고, 외부 장치에 구비되어 외부의 인터페이스를 통해 상기 메모리 스위칭 컨트롤 장치에 연결될 수도 있다.
도 1은 본 발명의 일 실시 예에 따른 메모리 스위칭 컨트롤 장치에 대한 구성도이다.
도 1을 참조하면, 메모리 스위칭 컨트롤 장치(1)는 하나 이상의 내부 프로세 싱 유닛과의 정합을 수행하는 하나 이상의 제1 프로세서 정합부(11~13)와, 하나 이상의 외부 인터페이스를 통해 연결되는 프로세싱 유닛과의 정합을 수행하는 하나 이상의 제2 프로세서 정합부(21~25)와, 각각 독립된 메모리 정합 포트에 연결되는 데이터 저장 장치들과의 정합을 위한 하나 이상의 메모리 정합부(31~34)와, 상기 제1 프로세서 정합부(11~13) 및 제2 프로세서 정합부(21~25) 중 하나를 선택하여 상기 메모리 정합부(31~34)와 연결하는 선택부(41~44)와, 상기 제1 프로세서 정합부(11~13) 및 제2 프로세서 정합부(21~25)의 요청에 따라서 상기 선택부(41~44)에 의한 연결을 중재하는 하나 이상의 제어부(51~54)를 포함한다.
상기 제1 프로세서 정합부(11~13)는 상기 메모리 스위칭 컨트롤 장치(1)와 함께 동일 장치 내에 구비되어 별도의 인터페이스를 통하지 않고 직접 연결되는 프로세싱 유닛(이하, 내부 프로세싱 유닛이라 함)에 대한 정합을 수행하는 것으로서, 상기 내부 프로세싱 유닛들의 메모리 읽기 및 쓰기 요청시 해당하는 메모리 정합부(31~34)를 찾아 사용을 요청하고, 상기 요청에 대한 사용권이 할당되면 읽기 요청된 데이터 및 제어신호를 프로세싱 유닛으로부터 받아 메모리 정합부(31~34)로 송신하거나 메모리 정합부(31~34)에서 전송되는 쓰기 요청된 데이터 및 제어신호를 해당 프로세싱 유닛으로 전달한다.
여기서 내부 프로세싱 유닛은 상기 메모리 스위칭 컨트롤 장치(1)와 분리된 외장형일수도 있고, 상기 메모리 스위칭 컨트롤 장치(2)와 통합된 내장형으로 구현될 수 있다.
상기 제2 프로세서 정합부(21~25)는 외부 인터페이스를 통한 메모리 액세스 를 정합하기 위한 것으로서, 예를 들면, 시리얼 인터페이스(12C/SPI) 정합부(21)와, PCI 32비트 정합부(22)와, PCI 64비트 또는 PCI-X 정합부(23)와, PCI-E 정합부(24,25)가 구비될 수 있으며, 각각 I2C/SPI, PCI를 통해 연결된 외부 장치로부터의 메모리 액세스를 정합한다.
상기 메모리 정합부(31~34)는 데이터 저장 장치들(91~94)와의 시리얼 정합을 수행하는 수단으로서, 포트 대 포트 방식으로 각각의 데이터 저장 장치(91~94)의 메모리 정합부(911,921,931,941)와 연결된다. 상기 메모리 정합부(31~34)들에서 지원하는 정합 라인 수와 속도는 서로 다르게 설정될 수도 있고, 동일하게 설정될 수도 있다. 또한, 상기 메모리 정합부(31~34)는 정합 라인 수가 고정되도록 구현될 수도 있고, 상기 정합 라인 수가 가변되도록 구현될 수도 있다. 상기 메모리 정합부(31~34)의 구성 및 작용은 다음에 관련 도면을 참조하여 더 구체적으로 설명한다.
상기 메모리 정합부(31~34)는 제1 프로세서 정합부(11~13) 및 제2 프로세서 정합부(21~25)와 선택부(41~44)를 통해 메모리 스위칭 컨트롤 장치(1)의 내부 버스를 통해 연결된다.
상기 선택부(41~44) 및 제어부(51~54)는 복수의 데이터 저장 장치별로 독립된 액세스가 가능하도록 독립된 중재수단으로서, 각 프로세싱 유닛의 메모리 사용을 분산시키는 기능을 수행한다.
상기 선택부(41~44)는 상기 제1 프로세서 정합부(11~13) 및 제2 프로세서 정합부(21~25)에 연결된 버스 묶음 중에서 사용이 허락된 버스를 선택하여 상기 메모 리 정합부(31~34)에 연결된 버스와 연결한다. 이때, 각 선택부(41~44)에 연결된 제어부(51~54)가 상기 선택부(41~44)의 선택 동작을 제어한다.
상기 제어부(51~54)는 상기 제1 프로세서 정합부(11~13) 및 제2 프로세서 정합부(21~25) 각각에 대한 메모리 정합 포트의 사용 가능 여부 및 액세스 우선 순위 정보에 기초하여, 메모리 정합 포트 사용 권한을 조정하며, 이에 근거하여 상기 선택부(41~44)의 선택 동작을 제어한다.
상기 제어부(51~54) 및 선택부(41~44)의 동작에 따라서 상기 제1,2 프로세서 정합부(11~13) 및 제2 프로세서 정합부(21~25)가 특정 메모리 정합부(31~34)와 연결되어, 해당 메모리 정합 포트에 대한 사용이 가능해진다.
상기 메모리 정합 포트에 대한 사용 가능 여부 및 액세스 우선 순위 정보는 각 제어부(51~54)에서 특정 레지스터에 저장되어 관리되며, 상기 정보들은 변경될 수 있다.
또한, 상기 제어부(51~54)는 해당 메모리 정합부(31~34)가 데이터 저장 장치(91~94)로부터 수신한 데이터를 분석하여, 데이터의 목적지를 찾는 기능을 수행하며, 해당 목적지로 전달되도록 상기 선택부(41~44)를 제어한다.
상기 구성의 메모리 스위칭 컨트롤 장치(1)에 있어서, 상기 메모리 정합부(31~34)들 각각이 시스템 어드레싱 공간(60)에서 차지하는 위치와 사이즈는 해당 메모리 정합부(31~34)에 연결되는 데이터 저장 장치(91~93)의 용량에 맞추어 가변된다. 예를 들어, 메모리 정합부(31)는 주소 0xA번지부터 시작하여 2GB의 어드레싱 공간(61)을 차지하고, 메모리 정합부(32)는 주소 0xB번지부터 시작하여 100MB의 어 드레싱 공간(62)을 차지하고, 메모리 정합부(33)는 주소 0xC번지부터 시작하여 1GB의 어드레싱 공간(63)을 차지하고, 메모리 정합부(34)은 주소 0xD번지부터 시작하여 30MB의 어드레싱 공간(64)을 차지하도록 구성할 수 있고, 필요에 따라 각 메모리 정합부(31~34)의 시작 주소 위치를 가변할 수 있다.
이러한 시스템 어드레싱 공간은, 각 메모리 정합부(31~34)의 초기화 과정에 의해 구성되며, 제1,2 프로세서 정합부(11~13, 21~25) 각각에서 이용되는 메모리 포트 테이블(도시생략)에 의해서 관리된다. 상기 메모리 포트 테이블은 상기 메모리 스위칭 컨트롤 장치(1)에 구성된 복수의 메모리 정합 포트별로 연결된 데이터 저장 장치에 할당된 메모리 시작 주소, 크기, 상태등을 관리하는 것으로서, 제1,2 프로세서 정합부(11~13,21~25) 각각에 구비될 수도 있고, 상기 제1,2 프로세서 정합부(11~13,21~25)에서 공통으로 접근 가능한 레지스터 등에 구현될 수도 있다. 상기 메모리 포트 테이블에 대해서는 다음에 관련 도면을 참조하여 더 구체적으로 설명한다.
상기 메모리 스위칭 컨트롤 장치(1)에 연결되는 데이터 저장 장치(91~94)로는 어떠한 종류라도 사용될 수 있으며, 상기 데이터 저장 장치(91~94)는 메모리 스위칭 컨트롤 장치(1)와 연결되는 시리얼 방식의 정합부(이하 메모리 정합부라 함)(911,921,931,941)을 포함한다. 상기 메모리 정합부(911,921,931,941)는 상기 메모리 스위칭 컨트롤 장치(1)의 메모리 정합부(31~34)와 동일한 기능을 구비한다.
상기 메모리 스위칭 컨트롤 장치(1)에 연결되는 데이터 저장 장치의 예를 들면, 단일 종류의 메모리 소자(913)를 여러 개를 병렬 버스(912)로 묶어 이를 시리 얼 정합 포트(43)에 연결하는 방식으로 구현된 데이터 저장 장치(92), 단일 메모리 소자를 하나의 시리얼 정합 포트에 연결하는 방식의 데이터 저장 장치(92~94) 등을 들 수 있으며, 또한 상기 데이터 저장 장치(91~94)를 구성하는 메모리 소자로는 디램(DRAM), 에스램(SRAM), 에스디램(SDRAM), 티캠(TCAM), 플래쉬 메모리(Flash memory), 하드 디스크(HDD) 등을 들 수 있다.
이상과 같이 구성되는 상기 메모리 스위칭 컨트롤 장치(1)는 제1 프로세서 정합부(11~13)에 연결된 복수의 내부 프로세싱 유닛 및 제2 프로세서 정합부(11~13)에 연결된 복수의 외부 프로세싱 유닛과, 메모리 정합부(31~34)에 연결된 복수의 데이터 저장 장치(91~94) 간의 액세스를 효율적으로 조정할 수 있다. 이에 대한 상세 구성 및 동작은 이후에 더 구체적으로 설명한다.
더하여, 상기 메모리 스위칭 컨트롤 장치(1)는 최근 반도체 기술의 발전과 함께 소형화 및 저전력화 추세에 맞추어 등장하고 있는 둘 이상의 이종 또는 동종, 고속 또는 저속의 메모리 소자들을 하나의 패키지에 내장한 응용 제품(이하, 다중 데이터 저장 장치라 한다)의 사용시에도 유용할 수 있다.
도 2는 상기 메모리 스위칭 컨트롤 장치(11)의 다른 사용 예를 설명하기 위한 것이다.
도 2를 참조하면, 다중 데이터 저장 장치(95)는 이종 또는 동종 그리고 고속 또는 저속의 메모리 내지 데이터 저장 소자들(951~953)이 독립된 메모리 정합부(954~957)에 각각 연결되어 구성된 것으로서, 상기 메모리 내지 데이터 저장 소 자들(951~953)은 각각 독립적으로 사용될 수 있다.
상기 다중 데이터 저장 장치(95)에 구비된 복수의 독립된 메모리 정합부(954~957)는 상기 메모리 스위칭 컨트롤 장치(1)의 메모리 정합부(예를 들어, 32~34)에 연결된다. 이에, 상기 메모리 스위칭 컨트롤 장치(1)의 제1 프로세서 정합부(11~13) 및 제2 프로세서 정합부(21~25)에 연결된 내부/외부 프로세싱 유닛들은 상기 메모리 스위칭 컨트롤 장치(1)를 통하여 상기 다중 데이터 저장 장치(95)의 복수의 이종 또는 동종의 메모리 내지 데이터 저장 소자들(951~953) 모두에 독립적으로 접근할 수 있게 된다.
상기 다중 데이터 저장 장치(95)의 각 메모리 내지 데이터 저장 소자들(951~953)은 각 소자의 요구 대역폭에 맞는 수의 정합 라인과 속도를 통해서 상기 메모리 스위칭 컨트롤 장치(1)의 메모리 정합부(32~34)와 데이터를 주고 받는다.
상기 다중 데이터 저장 장치(95)는 다른 실시 예로서, 하나의 메모리 내지 데이터 저장 소자(951~953)가 각각 독립된 메모리 정합부에 연결될 수도 있지만, 둘 이상의 메모리 내지 데이터 저장 소자가 하나의 그룹으로 묶여 상기 메모리 정합부에 연결될 수도 있다.
상술한 실시 예에 따르면, 상기 메모리 스위칭 컨트롤 장치(1)는, 각종 전자장치 및 기기의 소형화와 저전력화, 고기능화 추세와 맞물려 반도체 기술의 발전으로 소형 다기능 메모리 및 데이터 저장장치의 개발이 활발하게 이루어지고 있는 상황에서, 이들의 활용에 있어 독립된 포트를 가지고 포트 대 포트 방식의 데이터 송 수신으로 병목현상을 줄이고, 프로세서의 분산 처리 및 파이프라이닝을 세분화할 수 있고, 개방형 시리얼 정합 라인으로 패키지 핀수와 사이즈를 줄이고 메모리 소자별 대역폭에 맞는 라인 설계가 가능하게 하여, 다양한 메모리 내지 데이터 저장 소자들을 하나의 패키지 내로 수용할 수 있도록 한다.
도 3은 상기 메모리 스위칭 컨트롤 장치 및 데이터 저장 장치에 구비되는 메모리 정합부의 상세 구성을 보인 블록도이다.
도 3을 참조하면, 상기 메모리 정합부(30)는 메모리 스위칭 컨트롤 장치와 데이터 저장 장치 각각에서 정합 라인을 통한 데이터 송수신을 가능케 하는 것으로서, 크게 메모리 스위칭 컨트롤 장치 및 데이터 저장 장치의 내부 버스에 연결되어 내부 버스 데이터와 정합 라인 패킷 사이의 변환을 수행하는 링크부(310)와, 상기 링크부(310)와 외부 정합 라인 사이에 구비되어 송수신되는 정합 라인 패킷에 대한 물리 처리를 수행하는 물리부(320)로 이루어진다.
상기 링크부(310)는 읽기 데이터 혹은 쓰기 데이터가 입출력되는 데이터 입출력 버스(311)와, 읽기 또는 쓰기를 위한 제어 신호가 입력되는 제어 입력 버스(312)와, 읽기 또는 쓰기를 위한 제어 신호가 출력되는 제어 출력 버스(313)와, 상기 데이터 입출력 버스(311) 및 제어 입력 버스(312)로부터 입력된 데이터 및 제어 신호를 혼합하여 메모리 패킷을 출력하거나, 입력된 메모리 패킷을 데이터와 제어신호로 분리하여 상기 데이터 입출력 버스(311) 및 제어 출력 버스(313)로 출력하는 데이터 혼합 및 추출기(314)와, 상기 메모리 패킷과 설정된 라인 수에 대응하 는 정합 라인 패킷간의 변환을 수행하는 비대칭 버퍼부(317)로 이루어진다.
상기 제어 입력 버스(312) 및 제어 출력 버스(313)에서 입출력되는 제어 신호는 읽기 및 쓰기 요청과 관련된 메모리 주소, 제어신호, 및 상태 신호등을 포함한다.
상기 메모리 정합부(30)가 메모리 스위칭 컨트롤 장치(1)에 구비된 경우에는, 상기 링크부(310)의 데이터 입출력 버스(311)와 제어 입력 버스(312)와 제어 출력 버스(313)은 선택부(41~44)에 연결되고, 상기 메모리 정합부(30)가 데이터 저장 장치(91~95)에 구비된 경우에는, 내부 메모리 내지 데이터 저장 소자와 연결된다.
상기 데이터 혼합 및 추출기(314)는 상기 데이터 입출력 버스(311) 및 제어 입력 버스(312)로부터 입력된 데이터와 주소, 제어, 상태 신호를 조합하여 사전에 약속된 메모리 데이터 포맷의 메모리 패킷(316)을 만들어 버스(315)를 통해 비대칭 버퍼부(317)로 보낸다. 또한, 상기 데이터 혼합 및 추출기(314)는 비대칭 버퍼부(317)로부터 출력된 메모리 패킷(316)을 상기 버스(315)를 통해 입력받아, 데이터와 주소, 제어, 상태 신호를 분리하여, 데이터는 데이터 입출력 버스(311)로 출력시키고, 주소, 제어, 상태 신호는 제어 출력 버스(313)로 출력시킨다.
상기 비대칭 버퍼부(317)는 상기 버스(315)를 통해 입력된 메모리 패킷(316)을 임시 저장하는 기능과, 상기 메모리 패킷(316)의 데이터 폭을 정합 라인의 폭에 맞게 조절하여 출력하는 기능을 수행한다. 이때, 상기 정합 라인 폭에 맞추어 데이터 폭이 조절된 데이터를 정합 라인 패킷(318)이라 한다. 또한, 상기 비대칭 버퍼 부(317)는 외부 정합 라인측에서 입력되는 상기 정합 라인 패킷(318)을 입력받아 임시 저장하는 기능과, 상기 정합 라인 패킷(318)의 데이터 폭을 조절하여 메모리 패킷(316) 형태로 출력하는 기능을 수행한다. 상기 비대칭 버퍼부(317)는 입력 포트와 출력 포트가 비대칭으로 이루어진 비대칭 버퍼(Asymmetric buffer)로 구성되는 것으로서, 이를 통하여 임시 저장 기능 및 데이터 폭 변환이 가능해진다. 이에 대한 상세 구성 및 작용은 이후에 더 구체적으로 설명하기로 한다.
상기 링크부(310)와 물리부(320) 사이의 데이터 입출력은 정합 라인 패킷(318) 형태를 유지한다.
상기 물리부(320)는 상기 링크부(310)와 정합 라인 사이에서 입출력되는 정합 라인 패킷(318)을 각 비트 라인(318-1~318-4) 별로 일련의 처리 과정을 수행하는 것으로서, 스크램블링(scrambling) 및 디스크램블부((descrambling)(321)와, 엔코딩(encoding) 및 디코딩부(decoding)(322)와, 데이터 정렬부(data align)(323)와, 프레이밍(Framing) 및 디프레이밍(deframing)부(324) 중에서 하나 이상을 포함한다.
상기 스크램블링 및 디스크램블링부(321)는 동일 패턴의 반복된 데이터 발생으로 인한 EMI(electro magnetic interference) 발생을 줄이기 위해, 데이터 저장 장치 측의 정합 포트와 공통적으로 약속되어 있는 데이터 변환과 복원을 수행한다.
상기 인코딩 및 디코딩부(322)는 일련의 데이터 패턴에 대한 코딩과 디코딩을 수행하여, 데이터 패턴에서 클럭의 동기를 용이하게 하고, 정합 라인의 직류전압 밸런스를 유지하게 하고, 데이터 패턴의 주파수 대역을 한정한다.
상기 데이터 정렬부(323)는 각 정합 라인 사이의 데이터 지연을 보상한다. 즉, 메모리 정합부(30)의 초기화 과정에서 약속된 데이터 패턴의 입출력을 통해 측정된 각 정합 라인의 입출력 데이터 지연 값에 근거하여, 실제 데이터 송수신시의 지연을 보상한다.
상기 프레이밍 및 디프레이밍부(324)는 물리적인 데이터 송수신을 위해 정합 라인으로 입출력하는 데이터(325)에서 전기 신호의 시작과 끝 정보를 떼거나 붙이는 기능을 수행한다.
도 4a 및 도 4b는 본 발명의 실시 형태에 따른 상기 메모리 정합부(30)에 구비된 비대칭 버퍼부의 상세 구성도이다.
도 4a를 참조하면, 본 발명의 일 실시 형태에 따른 비대칭 버퍼부(400)는 비대칭 양방향 데이터 버퍼(401)와, 입출력 통제 회로로 구성된다.
상기 비대칭 양방향 데이터 버퍼(401)는 통상 듀얼 포트 램(dual-port RAM), FIFO(First Input First Out) 등의 소자를 이용하여 구현할 수 있다. 상기 비대칭 양방향 데이터 버퍼(401)의 입출력 구성은 상호 비대칭의 A,B 사이드로 구분되면, 상기 A 사이드는 메모리 패킷(402)이 입출력되는 단자(A_Din[64], A_Dout[64]) 및 상기 메모리 패킷(402)의 입출력을 제어하기 위한 클럭, 인에이블, 쓰기, 버퍼 주소 신호가 입력되는 단자(A_CLK, A_EN, A_WR, A_ADDR)가 구비되고, B 사이드는 정합 라인 패킷(403)이 입출력되는 단자(B_Dout[8], B_Din[8])와, 상기 정합 라인 패킷(403)의 입출력을 제어하기 위한 클럭, 인에이블, 쓰기, 버퍼 주소 신호가 입력 되는 단자(B_CLK, B_EN, B_WR, B_ADDR)가 구비된다. 더하여, 상기 비대칭 양방향 데이터 버퍼(401)는 필요에 따라 A 사이드와 B 사이드에 읽기, 패러티, 내부 데이터 개수 및 버퍼 상태 등의 추가 제어 신호가 입력되도록 구현될 수 있다.
상기 입출력 통제 회로는 상기 비대칭 양방향 데이터 버퍼(401)로 입출력되는 홴메모리 패킷(402) 및 정합 라인 패킷(403)의 흐름을 통제하기 위한 것으로서, 각각 제어 신호(A_OE, B_OE)에 따라서 오픈 상태와 정상 상태로 동작하는 3상 버퍼(404,405)로 구현된다.
상기 3 상 버퍼(404,405)는 각각 상기 비대칭 양방향 데이터 버퍼(401)의 메모리 패킷 및 정합 라인 패킷의 출력 단자(A_Dout[64], B_Dout[8])에 구비되고, 메모리 패킷(402) 및 정합 라인 패킷(403)의 입력시에는 오픈 상태로 동작하고, 메모리 패킷(402) 및 정합 라인 패킷(403)의 출력시에는 정상 상태로 동작하여, 상기 메모리 패킷 및 정합 라인 패킷의 입출력 흐름을 통제한다.
도 4a의 실시 예에 의한 상기 비대칭 버퍼부(400)는, 상기 정합라인 방향으로 데이터를 출력하는 경우에는, 메모리 패킷(402)을 64 비트단위로 A 사이드의 단자(A_Din[64])로 입력받아 임시로 저장하며, 상기 저장된 데이터를 입력 순서대로 B 사이드의 단자(B_Dout[8])를 통해 8비트씩 출력한다. 상기 B 사이드 단자(B_Dout[8])로부터 출력되는 데이터가 8비트로 데이터 폭이 조절된 정합 라인 패킷(403)이 된다. 반대로, 상기 정합 라인으로부터 데이터를 입력받는 경우에는, 8비트의 정합 라인 패킷을 B 사이드의 단자(B_Din[8])로 입력받아 임시로 저장하며, 상기 임시로 저장된 데이터들을 그 입력 순서대로 A 사이드의 단자(A_Dout[64])를 통해 64비트 단위로 출력한다. 이에 의하여 상기 비대칭 버퍼부(400)는 8 비트의 정합 라인 패킷을 64 비트의 메모리 패킷으로 변환하거나, 64비트의 메모리 패킷을 8비트의 정합 라인 패킷으로 변환한다.
도 4b는 상기 메모리 정합부(30)에 구비된 비대칭 버퍼부의 다른 실시 형태를 도시한 것으로서, 하나의 비대칭 양방향 데이터 버퍼를 사용한 상기 도 4a의 실시 형태와는 달리 두 개의 비대칭 양방향 데이터 버퍼를 사용하여 구현된다.
도 4b를 참조하면, 비대칭 버퍼부(410)는, 두 개의 비대칭 양방향 데이터 버퍼(411,412)와, 입출력 통제 회로로 구성된다.
상기 두 개의 비대칭 양방향 데이터 버퍼(411,412)는 각각 메모리 패킷(413)을 정합 라인 패킷(414)으로 변환하는 것과, 정합 라인 패킷(414)을 메모리 패킷(413)으로 변환하는 것으로 구분된다. 다른 말로 표현하면, 각각 정합 라인으로 출력되는 데이터의 폭 변환 용과, 정합 라인으로부터의 입력되는 데이터의 변환용을 구분하여 구현한 것이다.
상기 정합 라인으로 출력되는 데이터를 처리하는 비대칭 양방향 데이터 버퍼(411)의 A 사이드에는 메모리 패킷(413)이 입력되는 단자(A0_Din[64])와, 상기 메모리 패킷(413)의 입력 제어와 관련된 클럭, 인에이블, 쓰기, 버퍼 주소 신호가 입력되는 단자(A0_CLK, A0_EN, A0_WR, A0_ADDR)가 구비되고, B 사이드에는 정합 라인 패킷(414)이 출력되는 단자(B0_Dout[8])와, 상기 정합 라인 패킷(414)의 출력 제어와 관련된 클럭, 인에이블, 버퍼 주소 신호가 입력되는 단자(B0_CLK, B0_EN, B0_ADDR)가 구비된다. 이에 상기 비대칭 양방향 데이터 버퍼(411)는 64 비트 단위 로 메모리 패킷(413)을 입력받아 저장한 후, 8비트 단위의 정합 라인 패킷(414)으로 출력한다.
그리고 상기 정합 라인으로부터 입력되는 데이터를 처리하는 비대칭 양방향 데이터 버퍼(412)의 A 사이드에는 정합 라인 패킷(414)이 입력되는 단자(A1_Din[8])와, 상기 정합 라인 패킷(414)의 입력 제어와 관련된 클럭, 인에이블, 쓰기, 버퍼 주소 신호가 입력되는 단자들(A1_CLK, A1_EN, A1_WR, A1_ADDR)이 구비되고, B 사이드에는 메모리 패킷(413)이 출력되는 단자(B1_Dout[64])와, 상기 메모리 패킷(413)의 출력 제어와 관련된 클럭, 인에이블, 버퍼 주소 신호가 입력되는 단자(B1_CLK, B1_EN, B1_ADDR)가 구비된다. 이에 상기 비대칭 양방향 데이터 버퍼(412)는 8 비트의 단위의 정합 라인 패킷(414)를 입력받아 저장한 후, 64 비트 단위의 메모리 패킷(413)으로 출력한다.
이때, 입출력 통제 회로는, 상기 두 비대칭 양방향 데이터 버퍼(411,412)의 정합 라인 패킷의 출력을 위한 단자(B0_Dout[8]) 및 메모리 패킷의 출력을 위한 단자(B1_Dout[64])에 연결되어 제어신호(B0_OE, B1_OE)에 따라서 오픈 상태와 정상 상태로 동작하는 두 개의 3상 버퍼(415,416)로 이루어지며, 상기 두 개의 3상 버퍼(415,416)는 각각 메모리 패킷 및 정합 라인 패킷의 입력시에는 오픈 상태로 동작하고, 메모리 패킷 및 정합 라인 패킷의 출력시에는 정상 상태로 동작하여, 데이터의 흐름이 정상적으로 이루어지도록 통제한다.
또한, 상기 두 비대칭 양방향 데이터 버퍼(411,412)는 필요에 따라서, A 사이드와 B 사이드 각각에, 읽기, 패러티, 내부 데이터 개수 및 버퍼 상태 등의 추가 제어 신호가 입력될 수 있다.
한편, 상기 메모리 정합부(30)는 필요에 따라 정합 라인의 폭, 즉, 정합 라인 수를 가변하도록 구현될 수도 있다.
도 5는 본 발명의 다른 실시 형태에 따른, 가변적 시리얼 라인 정합을 위한 비대칭 버퍼부의 구성도이다.
도 5를 참조하면, 비대칭 버퍼부(420)는, 데이터 저장 장치와 메모리 스위칭 컨트롤 장치 사이의 정합 라인의 폭을 유연하게 가변하기 위하여, 복수의 비대칭 양방향 데이터 버퍼(421~423)와, 상기 복수의 비대칭 양방향 데이터 버퍼(421~423) 중 어느 하나로부터 정합 라인 패킷(425)를 선택 출력하는 선택기(426)와, 상기 복수의 비대칭 양방향 데이터 버퍼(421~423)의 데이터 입출력 흐름을 제어하기 위한 복수의 3상 버퍼(427~432)를 포함하여 이루어진다.
상기 복수의 비대칭 양방향 데이터 버퍼(421~423)는 가변적 시리얼 정합을 위하여, 정합 라인 패킷의 출력 비트 수가 다르게 구현된다.
도 5에 보인 실시 예에서는, 8개의 정합 라인을 지원하기 위한 비대칭 양방향 데이터 버퍼(421)와, 4개의 정합 라인을 지원하기 위한 비대칭 양방향 데이터 버퍼(422)와, 2개의 정합 라인을 지원하기 위한 비대칭 양방향 데이터 버퍼(423)를 구비하고 있으며, 이에 정합 라인 폭을 세 경우로 가변할 수 있다.
상기 비대칭 양방향 데이터 버퍼(421~423)는 도 4a의 예에서 보인 비대칭 양방향 데이터 버퍼(401)과 동일하게 동작하는 것으로서, 하나의 버퍼에서 메모리 패 킷 및 정합 라인 패킷의 입력과 출력을 모두 수행하도록 구현되었다. 그러나, 상기 비대칭 양방향 데이터 버퍼(421~423)들을 대신하여 도 4b에서 보인 두 개의 비대칭 양방향 데이터 버퍼(411,412)를 복수 개로 구현할 수도 있다.
상기 비대칭 버퍼부(420)의 동작을 설명하면, 메모리 정합부(30)의 초기화 동작시, 현재 연결된 정합 라인의 폭을 확인하고 이에 따라서 메모리 정합부(30)에서 지원하는 정합 라인 폭을 결정한다. 그리고, 상기 결정된 정합 라인 폭에 따라서 상기 선택기(426)에 선택 제어 신호(Px_SEL)을 인가하여, 상기 결정된 정합 라인 폭에 맞는 비대칭 양방향 데이터 버퍼(예를 들어, 421)를 선택하도록 한다. 그리고, 정합 라인으로의 데이터 입출력에 따라서 상기 선택된 비대칭 양방향 데이터 버퍼(421)의 A 사이드 및 B 사이드에 인에이블 신호(A0_EN, B0_EN)를 인가하고, A 사이드의 3 상 버퍼 및 B 사이드의 3 상 버퍼의 동작 상태를 제어한다.
예를 들면, 상기 메모리 정합부(30)에 연결된 정합 라인의 폭이 4 라면, 비대칭 양방향 데이터 버퍼(422)가 선택되고, 정합라인으로 데이터를 출력하는 경우 상기 비대칭 양방향 데이터 버퍼(422)에 A 사이드 인에이블 신호(A1_EN)를 인가하여 활성화하고 3 상 버퍼(429)는 오픈 상태가 되도록 제어 신호(A1_OE)를 인가한다. 이에 상기 데이터가 비대칭 양방향 데이터 버퍼(422)의 단자(A1_Din[64])로 입력되어 저장된다. 이어서 정합 라인의 출력 타이밍에 맞추어 상기 비대칭 양방향 데이터 버퍼(422)에 B 사이드 인에이블 신호(B1_EN)를 인가하여 활성화하고, 3상 버퍼(430)가 정상 상태가 되도록 제어신호(B1_OE)를 인가한다. 이에 상기 비대칭 양방향 데이터 버퍼(422)에 저장된 상기 데이터가 B 사이드의 단자(B1_Dout[4])를 통해 출력된 후 상기 3 상 버퍼(430)를 거쳐 선택기(425)로 입력되며, 상기 선택기(425)에서 정합 라인 버스(425)로 출력된다. 반대로, 정합 라인으로부터의 데이터 입력시에는, 상기 비대칭 양방향 데이터 버퍼(422)의 B 사이드 인에이블 신호(B1_EN)를 인가하고 3 상 버퍼(430)가 오픈 상태가 되도록 제어 신호(B1_OE)를 인가한다. 이에 선택기(425)를 통해 정합 라인으로부터 입력된 데이터가 상기 비대칭 양방향 데이터 버퍼(422)의 B 사이드 단자(B1_Din[4])를 통해 입력되어 저장된다. 이후 메모리 패킷 출력 타이밍에 맞추어 상기 비대칭 양방향 데이터 버퍼(422)의 A 사이드 인에이블 신호(A1_EN)을 인가하고, 3 상 버퍼(429)가 정상 상태가 되도록 제어신호(A1_OE)를 인가하면, 상기 비대칭 양방향 데이터 버퍼(422)에 저장된 데이터가 단자(A1_Dout[64])를 통해 출력되어 통합 버스(424)로 전달된다.
이에 의하면, 상기 비대칭 버퍼부(420)는 정합 라인의 폭을 가변가능하면서, 데이터의 입출력 흐름을 자유로이 통제할 수 있게 된다.
도 6은 상기 메모리 정합부(30)에 의해 생성되는 메모리 패킷의 일 실시 예를 보인 것이다.
도 6을 참조하면, 상기 메모리 패킷(800)은 크게 정보 블록(809)과 데이터 블록(811)으로 이루어지며, 상기 정보 블록(809)은, 정합 방식의 버전 정보(801), 메모리 액세스 요청 주체 및 시퀀스 번호 등을 알리는 아이디(802), 메모리 주소(803), 데이터 크기(804), 제어 정보(805), 상태 정보(806), 및 에러 체크 코드(807) 중에서 하나 이상을 포함하는데, 상기 정보들은, 데이터의 종류 및 가변 사항에 따라 일부 정보의 추가 및 생략이 있을 수 있다.
상기 메모리 정합부(30)는 읽기 또는 쓰기를 요청한 프로세싱 유닛 또는 메모리에서 받은 메모리 주소, 제어 및 상태 신호, 데이터 등을 조합하여 상기 포맷의 메모리 패킷(800)을 만들고, 또한 상기 메모리 패킷(800)을 수신하는 경우, 상기 포맷 안에 있는 정보를 토대로 프로세싱 유닛 또는 메모리가 받을 수 있게 상기 메모리 패킷을 풀어낸다.
상기 정보 블록(809)의 아이디(802)는 읽기 및 쓰기 요청이 발생하는 측의 정합부, 즉, 프로세서 정합부의 정보와, 해당 프로세서 정합부의 특정 요청 시퀀스 정보 등을 조합하여 생성한다.
상기 메모리 패킷(800)의 폭(808)은 상기 메모리 정합부 내부의 버스 폭 및 비대칭 버퍼의 입출력 데이터 폭을 고려하여 정한다. 또한, 상기 메모리 패킷(800)의 정보 블록(809)의 크기(810)는 메모리 스위칭 컨트롤 장치와 데이터 저장 장치 사이의 대역폭을 크게 소비하지 않으면서, 데이터의 신뢰성 높은 송수신을 위해 필요한 정보를 포함할 수 있는 범위로 한다. 또한, 상기 메모리 패킷(800)의 데이터 블록(811)의 크기(812)는 고정할 수도 있고, 최대값을 설정하고 상기 최대값 내에서 원하는 크기만큼 실어 보내도록 할 수 있다.
도 7은 본 발명에 따른 메모리 스위칭 컨트롤 장치에서 이용되는 메모리 포트 테이블의 일 실시 예를 보인 도면이다.
상기 메모리 포트 테이블(900)은 메모리 스위칭 컨트롤 장치(1)의 각 메모리 정합부(31~34)의 초기화 동작 과정에서 설정되어, 프로세싱 유닛과 연결되는 제1,2 프로세서 정합부(11~13, 21~25)에 의해 이용되는 것으로서, 상기 메모리 포트 테이블(900)의 정보를 가변함으로써, 메모리 정합부 별로 할당되는 시스템 어드레싱 공간을 변경할 수 있고, 또한, 각 메모리 정합부에 대한 각 프로세싱 유닛의 메모리 읽기 및 쓰기 권한을 통제할 수 있다.
도 7을 참조하면, 상기 메모리 포트 테이블(900)은 메모리 스위칭 컨트롤 장치(1)에 구비된 데이터 저장 장치와의 연결을 위한 메모리 정합부(901,902,903) 별로, 해당 메모리 정합부에 할당된 시스템 어드레싱 영역의 시작 주소 정보(904,908,912)와, 해당 메모리 정합부에 연결된 메모리의 물리적인 크기 또는 해당 메모리 정합부에 할당된 시스템 어드레싱 영역의 끝 주소 정보(905,909,913)와, 해당 메모리 정합부의 읽기 및 쓰기 가능 여부, 속도, 정합 라인의 수 등을 포함하는 상태 정보(906,910,914)와, 기타 정보(907,911,915)를 관리한다.
다음으로, 상기 메모리 스위칭 컨트롤 장치(1)에 있어서, 내부 및 외부 프로세싱 유닛과 메모리 정합부간의 중재 동작에 대해서 설명한다.
도 8은 도 1에 있어서의 상기 제1,2 프로세서 정합부(11~13,21~25)와 선택부(41~44)와 제어부(51~55)의 연결 구성을 설명하는 상기 메모리 스위칭 컨트롤 장치(1)의 부분 상세도이다. 여기서는, 설명의 편의를 위하여 도 1의 구성 요소중 일부만을 예로 들어 설명하나, 언급되지 않은 나머지 구성 요소도 이하의 설명에 기초하여 동일하게 동작함을 유의해야 한다. 이하의 설명을 통해, 상기 메모리 스위 칭 컨트롤 장치(1)의 메모리 정합부(31~34)와 프로세싱 유닛이 연결된 하나 이상의 제1,2 프로세서 정합부(11~13,21~25)가 어떠한 연결 관계를 갖는 지를 이해할 수 있을 것이다.
도 8을 참조하면, 상기 제1,2 프로세서 정합부(11,12, 21~24)는 각각, 내부 및 외부 프로세싱 유닛으로부터 인가된 주소와 제어 신호를 분석하여 메모리 정합부를 선택하고, 해당 메모리 정합부와의 데이터 교환 타이밍을 조절하는 디코더 및 제어부(111,121,211,221,231,241)와, 각각 내부 및 외부 프로세싱 유닛으로 입출력되는 데이터, 주소, 제어/상태 신호 등을 임시 저장하고 메모리 스위칭 컨트롤 장치(1)의 내부 버스에 맞게 데이터 폭과 속도를 조절하는 데이터 버퍼(112,122,212,222,232,242)를 포함한다.
상기 메모리 스위칭 컨트롤 장치(1)는 현재 각 메모리 정합부(31~34)의 사용 여부와 각 메모리 정합부(31~34)의 중요도 및 선택 정책에 따라서 사용 요청을 보낸 프로세서 정합부와 연결할 메모리 정합부를 선택하는데, 이 기능은 각 메모리 정합부(31~34)별로 구비된 제어부(51~54)에서 수행된다.
도 8을 참조하면, 상기 제어부(51)는 제1,2 프로세서 정합부(11,12,21~24)의 디코더 및 제어부(111,121,211,221,231,241)로부터 사용 요청 신호를 입력받으며, 선택부(41)로 선택 제어 신호를 인가한다.
상기 선택부(41)는 제어버스 및 데이터 버스 묶음(71)을 통해 상기 디코더 및 제어부(111,121,211,221,231,241)와 데이터 버퍼(112,122,212,222,232,242)에 연결되고, 또한 메모리 정합부(31)와 주소/제어신호 및 데이터를 입출력하는 통합 버스(78)에 연결되며, 상기 제어부(51)의 제어에 따라서 상기 디코더 및 제어부(111,121,211,221,231,241)와 데이터 버퍼(112,122,212,222,232,242)에 연결된 버스 묶음중 하나를 상기 통합 버스(78)와 연결한다.
상기 구성에서, 제어부(51)는 제1,2 프로세서 정합부(11,12,21~24)가 보내는 메모리 정합 포트에 대한 사용 요청 신호를 입력받고, 기 설정된 선택 정책에 따라서 사용 요청이 허락된 프로세서 정합부의 제어 버스 및 데이터 버스를 선택하는 제어 신호를 선택부(41)로 보내어, 해당 메모리 정합부(31)에 연결된 통합 버스(78)와 상기 사용 요청이 허락된 프로세서 정합부의 제어 버스 및 데이터 버스를 연결한다. 이때, 제1,2 프로세서 정합부(11,12,21~24) 각각은 메모리 정합부들에 할당된 어드레싱 영역의 위치를 포함하는 정보를 담고 있는 도 7과 같은 메모리 포트 테이블을 포함하고 있어, 내부 및 외부 프로세싱 유닛으로부터 특정 주소로의 읽기/쓰기 요청을 받았을 때, 해당하는 메모리 정합부를 중재하는 제어부로 메모리 정합 포트의 사용 요청 신호를 내보낼 수 있다.
다음으로, 이상과 같이 구성된 메모리 스위칭 컨트롤 장치(1)에서의 동작을 도 9 내지 도 11의 흐름도를 참조하여 설명한다. 더불어, 도 9 및 도 11의 흐름도 및 그에 대한 설명에서는 이해의 편의를 돕고자 각 단계를 순차적으로 나타내었으나, 이하에서 설명하는 각 단계들은 항상 순차적으로 진행되는 것이 아니며, 정보의 종류와 작업의 종류에 따라 각 단계의 순서가 바뀌거나 병렬처리될 수 있음을 유의해야 한다.
도 9는 본 발명의 일 실시 형태에 따른 메모리 스위칭 컨트롤 장치(1)의 초기화 과정을 나타낸 흐름도이다.
도 9를 참조하면, 상기 메모리 스위칭 컨트롤 장치(1)는 전원이 켜지거나, 리셋되거나, 초기화 명령이 내려지는 경우 초기화 동작을 시작한다.
초기화 동작이 시작되면, 상기 메모리 스위칭 컨트롤 장치(1)의 메모리 정합부(31~34)들은 각각 초기 구동 가능하도록 최저 속도로 정합 라인을 가동하여(S101), 현재 연결된 데이터 저장 장치에서 가용할 수 있는 정합 라인 수, 즉, 정합 라인 폭을 확인한다(S102).
그리고, 상기 메모리 정합부(31~34)는, 상기 확인된 정합 라인의 최고 라인 속도를 확인한다(S103).
상기 단계 S101~S103에 의하여, 각 메모리 정합부(31~34)는 현재 연결된 데이터 저장 장치에 맞춘 최적의 정합 라인을 설정한다.
그리고 나서, 상기 확인된 가용 가능한 모든 정합 라인을 상기 확인된 최고 라인 속도로 가동한다(S104).
그리고 상기 가동시킨 라인의 기본 작동, 즉, 데이터 송수신이 정상적으로 이루어지는 지를 점검하고(S105), 또한, 상기 가동된 라인별로 데이터 지연을 측정하여, 상기 라인간 지연 보상을 통해 전체 정합 라인의 출력 타이밍을 조정한다(S106).
또한, 상기 설정된 정합 라인을 통해 해당 메모리 정합부(31~34)에서 해당 데이터 저장 장치로 다양한 패턴의 쓰고 읽기를 반복하는 과정의 메모리 테스트를 수행한다(S107).
상기 테스트 결과, 현재 연결되어 있는 데이터 저장 장치가 정상이면, 해당 데이터 저장 장치에 매핑되는 시스템 어드레싱 공간을 할당하여, 상기 메모리 포트 테이블에 등록한 후 초기화 과정을 종료한다(S109). 그러나 상기 테스트 결과, 정상이 아니면, 에러 상태를 보고하고, 시스템 어드레싱 공간의 할당 및 등록없이 초기화 과정을 종료한다(S110).
상기의 초기화 과정이 정상적으로 완료됨으로써, 각 메모리 정합부(31~34)는 정합 라인 폭이 설정되고, 대응하는 시스템 어드레싱 공간이 할당된다. 따라서, 초기화 과정이 완료된 메모리 정합부를 통한 데이터 저장 장치로의 읽기 및 쓰기 동작이 가능해 진다.
도 10은 본 발명의 일 실시 형태에 따른 메모리 스위칭 컨트롤 장치(1)에서의 데이터 읽기 동작을 나타낸 흐름도이다.
도 10을 참조하면, 임의의 프로세싱 유닛으로부터 읽기 요청이 발생하는 경우면, 상기 읽기 요청은 상기 프로세싱 유닛이 연결된 프로세서 정합부(이하에서, 제1 프로세서 정합부(11)로 가정한다)에서 이를 수신한다(S201).
상기 읽기 요청을 수신한 제1 프로세서 정합부(11)는, 상기 프로세싱 유닛으로부터 읽기 요청된 메모리 주소 및 제어 신호 등을 버퍼링하고(S202), 상기 버퍼링된 메모리 주소 정보를 이용하여 현재 등록된 메모리 포트 테이블에서 데이터를 읽어올 메모리 정합부(이하에서, 메모리 정합부(31)로 가정한다) 정보를 추출한 다(S203).
그리고, 상기 추출된 메모리 정합부(31)의 제어부(51)로 메모리 정합 포트에 대한 사용을 요청한다(S204).
상기 사용 요청에 대하여, 상기 제어부(51)는 현재 메모리 정합부(31)가 사용되고 있는 지의 여부, 사용을 요청한 제1 프로세서 정합부(11)의 우선 순위 등을 고려하여 상기 제1 프로세서 정합부(11)에 대한 메모리 정합 포트 사용권을 할당하여 선택부(41)를 제어한다(S205). 이에 선택부(41)가 할당된 제1 프로세서 정합부(11)에 연결된 버스를 상기 메모리 정합부(31)에 연결된 버스에 연결한다.
그리고 상기 제1 프로세서 정합부(11)는 버퍼링하고 있던 메모리 읽기 요청 관련 데이터, 즉, 읽어올 메모리 주소, 제어 신호들을 출력하며, 이는 상기 선택부(41)를 통해서 메모리 정합부(31)로 보내진다(S206).
상기 단계 S206에 의해서 읽기 요청 관련 데이터를 입력받은 메모리 정합부(31)는 상기 입력된 데이터를 조합하여 읽기 요청을 위한 정합 라인 패킷을 생성하여(S207), 물리적인 처리 과정을 거쳐 데이터 저장 장치(91)와 연결된 정합 라인(81)으로 내보낸다(S208).
상기 정합 라인(81)에 연결된 데이터 저장 장치(91)는, 상기 읽기 요청을 위한 정합 라인 패킷을 수신하고, 상기 패킷을 처리하여, 요청된 메모리 주소의 데이터를 읽어와 상기 정합 라인(81)을 통해 메모리 정합부(31)로 전송한다(S209).
상기 메모리 정합부(31)는 단계 S208에서 읽기 요청을 위한 정합 라인 패킷을 내보낸 후, 상기 데이터 저장 장치(91)로부터 입력되는 정합 라인 패킷을 버퍼 링하고, 제어부(51)가 상기 버퍼링된 패킷에 포함된 읽기 요청 ID를 확인한다(S210). 그리고 상기 확인된 읽기 요청 ID를 이용하여 해당 패킷을 요청한 프로세서 정합부가 어디인지를 확인한다(S211). 상기 확인에 의해 선택부(41)가 확인된 제1 프로세서 정합부(11)와 메모리 정합부(31)를 연결한다.
그리고 상기 제어부(51)는 상기 확인된 제1 프로세서 정합부(11)로 읽기 요청한 데이터가 준비되었음을 알린다(S212).
이에 상기 제1 프로세서 정합부(11)는 선택부(41)를 통해 전송되는 상기 읽어온 데이터를 수신한 후, 이를 프로세싱 유닛으로 전달한다(S213).
상기에 의하면, 임의의 내부 및 외부 프로세싱 유닛은, 상기 메모리 스위칭 컨트롤 장치(1)를 통해서, 복수의 이종 및 동종 데이터 저장 장치에 독립적으로 접근하여, 원하는 데이터를 읽어올 수 있게 된다.
다음으로 상기 메모리 스위칭 컨트롤 장치(1)를 통한 메모리로의 데이터 쓰기 과정을 설명한다.
도 11은 본 발명의 일 실시 형태에 따른 메모리 스위칭 컨트롤 장치(1)에 의한 데이터 쓰기 동작을 도시한 흐름도이다.
도 11을 참조하면, 상기 메모리 스위칭 컨트롤 장치(1)의 제1 프로세서 정합부(11~13) 및 제2 프로세서 정합부(21~25) 중에서 어느 하나에 연결된 프로세싱 유닛이 메모리 쓰기 요청을 보내면(S301), 해당하는 프로세서 정합부(이하, 제1 프로세서 정합부(11)라고 가정한다.)에서 쓰기 요청된 메모리 주소, 제어 신호, 및 메 모리에 쓰여질 데이터 등을 버퍼링하고(S302), 상기 제1 프로세서 정합부(11)는 상기 버퍼링된 메모리 주소를 이용하여, 메모리 포트 테이블을 검색하여, 해당 메모리 주소에 대응하는 메모리 정합부가 어느 것인지를 확인한다(S303).
그리고 상기 확인된 메모리 정합부(이하, 메모리 정합부(31)라고 가정한다)의 제어부(51)로 메모리 정합 포트에 대한 사용권을 요청한다(S304).
상기 제어부(51)는 포트 사용 요청을 받으면, 현재 해당 메모리 정합부(31)의 사용 가능 여부, 상기 포트 사용을 요청한 제1 프로세서 정합부(11)의 우선 순위 등을 고려하여, 메모리 정합 포트에 대한 사용권을 할당한다(S305). 여기서, 제어부(51)는 선택부(41)를 제어하여, 제1 프로세서 정합부(11)와 메모리 정합부(31)를 연결한다.
상기 사용권을 할당받은 제1 프로세서 정합부(11)는 버퍼링하고 있던 메모리 쓰기 요청과 관련된 데이터들, 즉, 메모리에 쓰고자 하는 데이터, 메모리 주소, 제어 신호를 상기 메모리 정합부(31)로 보내고(S306), 상기 메모리 정합부(31)는 이를 사전에 설정된 메모리 패킷으로 구성하고, 다시 현재 설정된 정합 라인 폭에 맞추어 데이터 폭을 조절한 정합 라인 패킷으로 만든 다음(S307), 물리적인 처리 과정을 거쳐 정합 라인(81)으로 내보낸다(S308). 상기 정합 라인(81)을 통해 메모리 쓰기 요청된 정합 라인 패킷을 받은 데이터 저장 장치(91)는 상기 정합 라인 패킷을 메모리 패킷으로 변환한 후, 상기 메모리 패킷을 해석하여 쓰기 요청된 데이터를 요청한 주소에 저장한다(S309).
별도의 쓰기 완료 및 확인 과정(S310)이 필요 없는 경우에는, 상기 단계 S309에서 데이터 저장 장치가 해당 데이터의 쓰기를 수행한 후 데이터 쓰기 동작이 모두 종료된다.
반면에, 쓰기 완료 및 확인 과정(S310)이 필요한 경우에는, 상기 단계 S309를 수행한 후에, 상기 데이터 저장 장치(91)가 쓰기 요청에 대한 응답을 정합 라인(81)으로 전송하고(S311), 메모리 정합부(31)에서 상기 쓰기 요청에 대한 응답을 수신하며, 제어부(51)가 상기 수신된 응답 패킷에 포함된 쓰기 요청 ID를 확인하여(S312), 상기 확인된 쓰기 요청 ID를 통해서 쓰기 요청한 프로세서 정합부가 어디인지 확인하여 상기 확인된 제1 프로세서 정합부(11)로 응답이 전달될 수 있도록 선택부(41)를 제어한다(S313). 그리고 상기 메모리 정합부(31)는 상기 수신된 데이터 쓰기 요청에 대한 응답을 출력하며, 이는 선택부(41)를 통해 상기 제1 프로세서 정합부(11)로 전달된다(S314). 상기 응답을 수신한 제1 프로세서 정합부(11)는 상기 응답으로부터 요청한 데이터 쓰기에 대한 처리 상태를 확인하여 이를 해당 프로세싱 유닛에 알린다(S315).
상술한 바와 같은 본 발명의 방법은 프로그램으로 구현되어 컴퓨터로 읽을 수 있는 형태로 기록매체(씨디롬, 램, 롬, 플로피 디스크, 하드 디스크, 광자기 디스크 등)에 저장될 수 있다. 이러한 과정은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있으므로 더 이상 상세히 설명하지 않기로 한다.
도 12 및 도 13은 본 발명에 의한 메모리 스위칭 컨트롤 장치의 응용 예를 나타낸 블럭도이다.
도 12에 도시된 바와 같이, 본 발명에 따른 메모리 스위칭 컨트롤 장치(1)는 하나 이상의 프로세서(2,3)에 동시에 연결되고, 독립된 시리얼 정합 포트를 갖는 복수의 메모리를 갖는 데이터 저장 장치(4)의 복수의 시리얼 정합 포트에 각각 연결되어, 상기 하나 이상의 프로세서(2,3)가 상기 데이터 저장 장치(4)에 구비된 복수의 메모리에 독립적으로 각각 접근할 수 있도록 중재할 수 있다.
또한, 본 발명에 따른 메모리 스위칭 컨트롤 장치(1)는, 도 13에 도시된 바와 같이, 마이크로 프로세서(5), 그래픽 제어기(6) 및 기타 장치들(7)에 연결되고, 또한, 이종의 데이터 저장 장치들(8~11)에 동시에 연결되어, 상기 마이크로 프로세서(5), 그래픽 제어기(6) 및 기타 장치들(7)이 서로 독립적으로 상기 이종의 데이터 저장 장치들(8~11)을 사용할 수 있도록 중재할 수 있다.
이상에서 설명한 본 발명은 전술한 실시 예 및 첨부된 도면에 의해 한정되는 것이 아니고, 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경할 수 있다는 것은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 당업자에게 있어 명백할 것이다.
도 1은 본 발명의 일 실시 형태에 따른 개방형 시리얼 정합 방식을 이용한 메모리 스위칭 컨트롤 장치 및 데이터 저장 장치를 도시한 블록도,
도 2는 본 발명의 다른 실시형태에 따른 개방형 시리얼 정합 방식을 이용한 메모리 스위칭 컨트롤 장치 및 데이터 저장 장치를 도시한 블록도,
도 3은 상기 메모리 스위칭 컨트롤 장치 및 데이터 저장 장치에 적용되는 메모리 정합부의 구성을 나타낸 블록도,
도 4a 및 도 4b는 상기 메모리 정합부에 구비되는 비대칭 버퍼부의 실시 예를 보인 블록도,
도 5는 상기 메모리 정합부에 구비되는 비대칭 버퍼부의 다른 실시 예를 보인 블록도,
도 6은 본 발명에 의한 메모리 스위칭 컨트롤 장치 및 데이터 저장 장치에 적용되는 메모리 패킷의 구성도,
도 7은 본 발명에 의한 메모리 스위칭 컨트롤 장치에 적용되는 메모리 포트 테이블의 일 실시예를 보인 블록도,
도 8은 본 발명에 의한 메모리 스위칭 컨트롤 장치에 있어서 메모리 정합부별 중재를 위한 구성 및 동작을 설명하기 위한 도면,
도 9는 본 발명에 의한 메모리 스위칭 컨트롤 장치의 초기화 동작을 나타낸 흐름도,
도 10은 본 발명에 의한 메모리 스위칭 컨트롤 장치의 데이터 읽기 동작을 나타낸 흐름도,
도 11은 본 발명에 의한 메모리 스위칭 컨트롤 장치의 데이터 쓰기 동작을 나타낸 흐름도, 그리고
도 12 및 도 13은 본 발명의 적용 예를 나타낸 블럭도이다.

Claims (32)

  1. 하나 이상의 프로세싱 유닛과의 정합을 수행하는 하나 이상의 프로세서 정합부;
    각각 개방형 시리얼 방식의 메모리 정합 포트를 구비하며 해당 메모리 정합 포트에 연결되는 데이터 저장 장치들과의 시리얼 방식으로 정합하는 하나 이상의 메모리 정합부; 및
    상기 하나 이상의 메모리 정합부에 대하여 각각 설정되어, 상기 메모리 정합부 각각에 대한 상기 하나 이상의 프로세서 정합부의 사용을 메모리 정합 포트의 사용 가능 여부 및 각각의 메모리에의 엑세스 우선 순위 정보에 기초하여 독립적으로 중재하는 복수의 중재부를 포함하는 개방형 시리얼 정합 방식을 이용한 메모리 스위칭 컨트롤 장치.
  2. 제1항에 있어서,
    상기 하나 이상의 메모리 정합부 별로 할당된 메모리 시작 주소와, 해당 메모리 정합 포트에 연결된 데이터 저장 장치의 메모리 크기 또는 할당된 메모리 끝 주소, 상기 메모리 정합부의 상태 정보를 관리하는 메모리 포트 테이블을 더 포함하는 개방형 시리얼 정합 방식을 이용한 메모리 스위칭 컨트롤 장치.
  3. 제1항에 있어서, 상기 메모리 정합부는
    상기 연결된 데이터 저장 장치의 요구 대역폭에 맞추어 정합 라인의 수가 가변되는 것을 특징으로 하는 개방형 시리얼 정합 방식을 이용한 메모리 스위칭 컨트롤 장치.
  4. 제1항에 있어서, 상기 메모리 정합부는
    상기 프로세서 정합부들로부터 인가되는 데이터 버스 신호 및 제어 버스의 신호를 조합하여 메모리 패킷을 생성한 후 상기 메모리 패킷을 데이터 폭을 조절하여 정합 라인 패킷으로 변환하고, 상기 정합 라인 패킷을 메모리 패킷으로 변환한 후, 상기 메모리 패킷을 데이터 버스 신호 및 제어 버스 신호로 분리하는 링크부; 및
    상기 링크부와 정합 라인 사이에서 입출력되는 정합 라인 패킷에 대한 물리 계층의 처리를 수행하는 물리부를 포함하여 이루어지는 개방형 시리얼 정합 방식을 이용한 메모리 스위칭 컨트롤 장치.
  5. 제2항에 있어서,
    상기 메모리 정합부 별로 할당되는 메모리 시작 주소와, 메모리 크기 또는 메모리 끝 주소는, 해당 메모리 정합부에 연결된 데이터 저장 장치의 메모리 용량 에 따라서 가변되는 것을 특징으로 하는 개방형 시리얼 정합 방식을 이용한 메모리 스위칭 컨트롤 장치.
  6. 제2항에 있어서, 상기 프로세서 정합부는
    프로세싱 유닛과 내부 버스로 직접 연결되어 해당 프로세싱 유닛의 메모리 액세스를 정합하는 제1 프로세서 정합부; 및
    외부 인터페이스를 통해 연결된 외부 프로세싱 유닛의 메모리 액세스를 정합하는 제2 프로세서 정합부 중에서 하나인 것을 특징으로 하는 개방형 시리얼 정합 방식을 이용한 메모리 스위칭 컨트롤 장치.
  7. 제2항에 있어서, 상기 프로세서 정합부는
    상기 프로세싱 유닛으로 입출력되는 데이터, 메모리 주소, 제어 및 상태 신호를 임시 저장하고, 상기 메모리 정합부로의 입출력되는 데이터의 폭과 속도를 조절하는 데이터 버퍼;
    상기 데이터 버퍼에 저장된 메모리 주소, 제어 및 상태 신호 및 상기 메모리 포트 테이블을 이용하여 억세스를 요청할 메모리 정합부를 확인하여 사용권을 요청하며, 해당 메모리 정합부와의 데이터 교환 타이밍을 조절하는 디코더 및 제어부를 포함하는 것을 특징으로 하는 개방형 시리얼 정합 방식을 이용한 메모리 스위칭 컨 트롤 장치.
  8. 제2항에 있어서, 상기 중재부는,
    상기 하나 이상의 프로세서 정합부의 메모리 정합 포트 사용 요청을 수신하면 해당 메모리 정합부의 사용 가능 여부와 상기 프로세서 정합부들의 우선순위를 고려하여 메모리 정합 포트의 사용권을 할당하는 제어부; 및
    상기 제어부의 사용권 할당에 따라서 하나 이상의 프로세서 정합부를 선택적으로 상기 메모리 정합부에 연결하는 선택부를 포함하여 이루어지는 개방형 시리얼 정합 방식을 이용한 메모리 스위칭 컨트롤 장치.
  9. 제4항에 있어서, 상기 링크부는
    읽기 데이터 및 쓰기 데이터를 포함하는 데이터 버스 신호를 상기 프로세서 정합부 측으로 입출력하는 데이터 입출력 버스;
    메모리 주소, 읽기 및 쓰기 제어 신호, 및 상태 신호를 포함하는 제어 버스 신호를 상기 프로세서 정합부 측으로부터 입력받는 제어 입력 버스;
    상기 메모리 주소, 읽기 및 쓰기 제어 신호, 및 상태 신호를 포함하는 제어 버스 신호를 상기 프로세서 정합부 측으로 출력하는 제어 출력 버스;
    상기 데이터 입출력 버스에서 입력된 데이터 버스 신호와 제어 입력 버스에 서 입력되는 제어 버스 신호를 조합하여 메모리 패킷으로 출력하고, 입력된 메모리 패킷에서 데이터 버스 신호와 제어 버스 신호를 분리하여 상기 데이터 입출력 버스 및 제어 출력 버스로 출력하는 데이터 혼합 및 추출기; 및
    상기 데이터 혼합 및 추출기에서 출력되는 메모리 패킷의 폭을 조절하여 정합 라인 패킷으로 변환하거나, 입력된 정합 라인 패킷의 데이터 폭을 조절하여 상기 메모리 패킷으로 변환하여 데이터 혼합 및 추출기로 출력하는 비대칭 버퍼부를 포함하여 이루어지는 개방형 시리얼 정합 방식을 이용한 메모리 스위칭 컨트롤 장치.
  10. 제4항에 있어서, 상기 물리부는
    상기 정합 라인 패킷에 대하여 동일 패턴의 반복된 데이터 발생으로 인한 EMI(electro magnetic interference) 발생을 줄이기 위해 약속되어 있는 데이터 변환 및 복원을 수행하는 스크램블링 및 디스크램블링부;
    상기 정합 라인 패킷에 대하여 클럭 동기를 용이하게 하고, 정합 라인의 직류 전압 밸런스를 유지하고 데이터 패턴의 주파수 대역을 한정하기 위한 코딩 및 디코딩을 수행하는 인코딩 및 디코딩부; 및
    각 정합 라인 사이의 데이터 지연을 보상하는 데이터 정렬부 중에서 하나 이상을 포함하여 이루어지는 개방형 시리얼 정합 방식을 이용한 메모리 스위칭 컨트롤 장치.
  11. 제4항에 있어서, 상기 메모리 패킷은,
    정합 방식의 버전 정보, 메모리 액세스 요청 주체 및 시퀀스 번호 등을 알리는 아이디, 메모리 주소, 데이터 크기, 제어 정보, 상태 정보, 및 에러 체크 코드 중에서 하나 이상을 포함하는 정보 블록과,
    읽기 데이터 및 쓰기 데이터가 실리는 데이터 블록으로 이루어지는 개방형 시리얼 정합 방식을 이용한 메모리 스위칭 컨트롤 장치.
  12. 제9항에 있어서, 상기 비대칭 버퍼부는
    상호 비대칭의 입출력 구성을 갖는 A,B 사이드를 구비하고, 상기 A 사이드로 입력된 메모리 패킷을 임시 저장후 상기 B 사이드를 통해 정합 라인 패킷으로 출력하고, B 사이드로 입력된 정합 라인 패킷을 임시 저장후 상기 A 사이드를 통해 메모리 패킷으로 출력하는 비대칭 양방향 데이터 버퍼; 및
    상기 비대칭 양방향 데이터 버퍼에 대한 메모리 패킷 및 정합 라인 패킷의 입출력 흐름을 통제하는 입출력 통제 회로로 이루어지는 개방형 시리얼 정합 방식을 이용한 메모리 스위칭 컨트롤 장치.
  13. 제9항에 있어서, 상기 비대칭 버퍼부는
    상호 비대칭의 입출력 구성을 갖는 A,B 사이드를 구비하고, 상기 A 사이드로 메모리 패킷을 입력받아 임시 저장후 상기 B 사이드를 통해 정합 라인 패킷으로 출력하는 제1 비대칭 양방향 데이터 버퍼;
    상호 비대칭의 입출력 구성을 갖는 A,B 사이드를 구비하고, 상기 A 사이드로 정합 라인 패킷을 입력받아 임시 저장 후, B 사이드를 통해 메모리 패킷으로 출력하는 제2 비대칭 양방향 데이터 버퍼; 및
    상기 제1 비대칭 양방향 데이터 버퍼 및 제2 비대칭 양방향 데이터 버퍼에 대한 메모리 패킷 및 정합 라인 패킷의 입출력 흐름을 통제하는 입출력 통제 회로로 이루어지는 개방형 시리얼 정합 방식을 이용한 메모리 스위칭 컨트롤 장치.
  14. 제9항에 있어서, 상기 비대칭 버퍼부는
    상호 비대칭의 입출력 구성을 갖는 A,B 사이드를 구비하여 A 사이드로 메모리 패킷을 입출력하고 B 사이드로 정합 라인 패킷을 입출력하며, 상기 B 사이드로 입출력되는 데이터 폭이 서로 다르게 설정된 복수의 비대칭 양방향 데이터 버퍼;
    상기 복수의 비대칭 양방향 데이터 버퍼에 대한 메모리 패킷 및 정합 라인 패킷의 입출력 흐름을 통제하는 입출력 통제 회로; 및
    정합 라인의 폭에 따라서, 상기 복수의 비대칭 양방향 데이터 버퍼 중 동일 데이터 폭을 갖는 비대칭 양방향 데이터 버퍼에서 정합 라인 패킷의 입출력이 이루 어지도록 선택 제어하는 선택부로 이루어지는 개방형 시리얼 정합 방식을 이용한 메모리 스위칭 컨트롤 장치.
  15. 제9항에 있어서, 상기 비대칭 버퍼부는
    상호 비대칭의 입출력 구성을 갖는 A,B 사이드를 구비하여, 상기 A 사이드로 메모리 패킷을 입력받아 상기 B 사이드를 통해 정합 라인 패킷으로 출력하며, 상기 B 사이드의 데이터 출력 폭이 서로 다른 복수의 제1 비대칭 양방향 데이터 버퍼;
    상호 비대칭의 입출력 구성을 갖는 A,B 사이드를 구비하여, 상기 A 사이드로 정합 라인 패킷을 입력받아 B 사이드를 통해 메모리 패킷으로 출력하며, 상기 A 사이드의 데이터 출력 폭이 서로 다른 복수의 제2 비대칭 양방향 데이터 버퍼;
    상기 제1 비대칭 양방향 데이터 버퍼 및 제2 비대칭 양방향 데이터 버퍼에 대한 메모리 패킷 및 정합 라인 패킷의 입출력 흐름을 통제하는 입출력 통제 회로; 및
    정합 라인의 폭에 따라서, 상기 복수의 제1 및 제2 비대칭 양방향 데이터 버퍼 중 동일 데이터 폭을 갖는 제1 및 제2 비대칭 양방향 데이터 버퍼에서 정합 라인 패킷의 입출력이 이루어지도록 선택 제어하는 선택부로 이루어지는 개방형 시리얼 정합 방식을 이용한 메모리 스위칭 컨트롤 장치.
  16. 제12항 내지 제15항 중 어느 한 항에 있어서, 상기 입출력 통제 회로는
    메모리 패킷 및 정합 라인 패킷의 출력 라인에 구비되어, 데이터 입출력에 따라서 오픈 상태 및 정상 상태로 동작하는 복수의 3 상 버퍼로 이루어지는 것을 특징으로 하는 개방형 시리얼 정합 방식을 이용한 메모리 스위칭 컨트롤 장치.
  17. 제14항 또는 제15항에 있어서, 상기 선택부는
    초기 동작시, 데이터 저장 장치와 연결되는 정합 라인중에서 가용 정합 라인의 수를 확인하여, 상기 가용 정합 라인의 수에 따라서 상기 선택 동작을 수행하는 것을 특징으로 하는 개방형 시리얼 정합 방식을 이용한 메모리 스위칭 컨트롤 장치.
  18. 제11항에 있어서, 상기 아이디는,
    메모리 액세스 요청이 발생한 프로세서 정합부의 정보와 해당 프로세서 정합부의 특정 요청 시퀀스 정보를 조합하여 생성하는 것을 특징으로 하는 개방형 시리얼 정합 방식을 이용한 메모리 스위칭 컨트롤 장치.
  19. 복수의 프로세싱 유닛에 각각 연결되는 복수의 프로세서 정합부와, 복수의 데이터 저장 장치에 각각 연결되는 복수의 메모리 정합부 및 상기 복수의 메모리 정합부 각각에 대한 프로세서 정합부의 사용을 메모리 정합 포트의 사용 가능 여부 및 각각의 메모리에의 엑세스 우선 순위 정보에 기초하여 중재하는 복수의 중재부를 포함하는 개방형 시리얼 정합 방식을 메모리 스위칭 컨트롤 장치의 동작 방법에 있어서,
    초기화 동작이 시작되면, 상기 메모리 정합부들이 각각 최저 속도로 정합 라인을 가동하여, 가용할 수 있는 정합 라인의 수를 확인하는 단계;
    상기 확인된 가용할 수 있는 정합 라인의 최고 속도를 확인하는 단계; 및
    상기 확인된 가용할 수 있는 모든 정합 라인을 상기 확인된 최고 속도로 가동하여, 정상 동작하는 지를 확인하는 단계;
    상기 정상 동작하는 것으로 확인된 정합 라인별로 데이터 지연을 측정하여, 상기 라인간 지연을 보상하는 단계;
    상기 정상 동작하는 정합 라인에 연결된 데이터 저장 장치에 대하여 메모리 테스트를 수행하는 단계; 및
    상기 테스트 결과가 정상이면, 해당 데이터 저장 장치에 매핑되는 시스템 어드레싱 공간을 메모리 정합부별로 할당하여, 메모리 포트 테이블에 등록하는 단계를 포함하는 개방형 시리얼 정합 방식을 메모리 스위칭 컨트롤 장치의 동작 방법.
  20. 제19항에 있어서,
    상기 메모리 테스트 결과가 정상이 아니면, 에러 상태를 보고하고, 해당 메모리 정합부에 대하여 시스템 어드레싱 공간의 할당 및 등록을 수행하지 않는 단계 를 더 포함하는 개방형 시리얼 정합 방식을 메모리 스위칭 컨트롤 장치의 동작 방법.
  21. 제19항에 있어서,
    임의의 프로세싱 유닛으로부터 읽기 요청이 발생하면, 해당 프로세서 정합부가 상기 프로세싱 유닛으로부터 읽기 요청된 메모리 주소 및 제어 신호 등을 버퍼링하는 단계;
    상기 프로세서 정합부가 상기 버퍼링된 메모리 주소 정보를 이용하여 현재 등록된 메모리 포트 테이블에서 데이터를 읽어올 메모리 정합부를 확인하는 단계;
    상기 프로세서 정합부가 상기 확인된 메모리 정합부의 중재부로 메모리 정합 포트에 대한 사용을 요청하는 단계;
    상기 중재부가 상기 메모리 정합부의 사용 가능 여부 및 상기 프로세서 정합부의 우선 순위를 고려하여 메모리 정합 포트 사용권을 할당하는 단계;
    상기 할당에 의하여, 상기 프로세서 정합부에 버퍼링하고 있던 메모리 주소 및 제어 신호를 상기 메모리 정합부를 통해 데이터 저장 장치로 인가하는 단계;
    상기 메모리 정합부가 상기 데이터 저장 장치로부터 읽기 요청된 데이터를 수신하는 단계;
    상기 중재부가 상기 메모리 정합부가 수신한 데이터를 요청한 프로세서 정합부를 확인하는 단계;
    상기 확인된 프로세서 정합부로 상기 메모리 정합부에서 수신한 데이터를 전달하는 단계; 및
    상기 프로세서 정합부가 상기 데이터를 수신하여 해당 프로세싱 유닛으로 전달하는 단계를 더 포함하는 개방형 시리얼 정합 방식을 메모리 스위칭 컨트롤 장치의 동작 방법.
  22. 제21항에 있어서,
    수신한 데이터를 요청한 프로세서 정합부를 확인하는 단계 이후에, 상기 중재부가 상기 확인된 프로세서 정합부로 읽기 요청한 데이터가 준비되었음을 알리는 단계를 더 포함하는 개방형 시리얼 정합 방식을 메모리 스위칭 컨트롤 장치의 동작 방법.
  23. 제19항에 있어서,
    임의의 프로세싱 유닛에서 메모리 쓰기 요청이 발생하면, 상기 프로세싱 유닛에 연결된 프로세서 정합부가 상기 프로세싱 유닛으로부터 쓰기 요청된 메모리 주소, 제어 신호, 및 메모리에 쓰여질 데이터 등을 버퍼링하는 단계;
    상기 프로세서 정합부가 상기 버퍼링된 메모리 주소를 이용하여, 상기 메모리 포트 테이블을 검색하여, 해당 메모리 주소에 대응하는 메모리 정합부를 확인하 는 단계;
    상기 프로세서 정합부가 상기 확인된 메모리 정합부의 중재부로 메모리 정합 포트에 대한 사용권을 요청하는 단계;
    상기 중재부가 상기 메모리 정합부의 사용 가능 여부, 상기 프로세서 정합부의 우선 순위를 고려하여, 메모리 정합 포트에 대한 사용권을 할당하는 단계;
    상기 사용권을 할당받은 프로세서 정합부에서 버퍼링하고 있던 데이터, 메모리 주소, 제어 신호가 상기 메모리 정합부로 전달되는 단계; 및
    상기 메모리 정합부가 상기 데이터, 메모리 주소, 제어 신호를 데이터 저장 장치로 전송하여, 쓰기 요청하는 단계를 더 포함하는 개방형 시리얼 정합 방식을 이용한 메모리 스위칭 컨트롤 장치의 동작 방법.
  24. 제23항에 있어서,
    상기 메모리 정합부가 상기 쓰기 요청에 대한 응답을 데이터 저장 장치로부터 수신하는 단계;
    상기 중재부가 상기 메모리 정합부에 수신된 응답이 전달될 프로세서 정합부를 확인하는 단계;
    상기 메모리 정합부가 상기 확인된 프로세서 정합부로 상기 수신된 응답을 전달하는 단계; 및
    상기 프로세서 정합부가 상기 전달된 응답을 해당 프로세싱 유닛으로 전송하 는 단계를 더 포함하는 개방형 시리얼 정합 방식을 이용한 메모리 스위칭 컨트롤 장치의 동작 방법.
  25. 하나 이상의 메모리 소자; 및
    상기 하나 이상의 메모리 소자에 각각 또는 공동으로 연결되는 개방형 시리얼 방식의 메모리 정합 포트를 구비하며, 해당 메모리 정합 포트에 연결되는 정합 라인을 통해 사전에 설정된 형식의 데이터를 수신하여 상기 메모리 소자에 전달하거나 상기 메모리 소자에서 읽어들인 데이터를 상기 사전에 설정된 형식으로 변환하여 상기 메모리 정합 포트로 출력하는 하나 이상의 메모리 정합부를 포함하며,
    상기 메모리 정합부는 데이터 폭을 조절하여 메모리 패킷과 정합 라인 패킷 상호간을 변환하며,
    상기 메모리 패킷은 메모리에 대한 정보를 포함하는 정보 블록과 읽기 및 쓰기 데이터를 포함하는 데이터 블록으로 구성되는 것을 특징으로 하는 데이터 저장 장치.
  26. 제25항에 있어서, 상기 메모리 정합부는
    상기 메모리 소자로부터 출력되는 데이터 버스 신호 및 제어 버스의 신호를 조합하여 메모리 패킷을 생성한 후 상기 메모리 패킷을 데이터 폭을 조절하여 정합 라인 패킷으로 변환하여 상기 메모리 정합 포트로 출력하고, 상기 메모리 정합 포트에서 입력되는 정합 라인 패킷을 메모리 패킷으로 변환한 후, 상기 메모리 패킷을 데이터 버스 신호 및 제어 버스 신호로 분리하여 상기 메모리 소자에 인가하는 링크부; 및
    상기 링크부와 정합 라인 사이에서 입출력되는 정합 라인 패킷에 대한 물리 계층의 처리를 수행하는 물리부를 포함하여 이루어지는 데이터 저장 장치.
  27. 제26항에 있어서, 상기 링크부는
    읽기 데이터 및 쓰기 데이터를 포함하는 데이터 버스 신호를 상기 메모리 소자로 입출력하는 데이터 입출력 버스;
    메모리 주소, 읽기 및 쓰기 제어 신호, 및 상태 신호를 포함하는 제어 버스 신호를 상기 메모리 소자로부터 입력받는 제어 입력 버스;
    상기 메모리 주소, 읽기 및 쓰기 제어 신호, 및 상태 신호를 포함하는 제어 버스 신호를 상기 메모리 소자로 출력하는 제어 출력 버스;
    상기 데이터 입출력 버스에서 입력된 데이터 버스 신호와 제어 입력 버스에서 입력되는 제어 버스 신호를 조합하여 메모리 패킷으로 출력하고, 입력된 메모리 패킷에서 데이터 버스 신호와 제어 버스 신호를 분리하여 상기 데이터 입출력 버스 및 제어 출력 버스로 출력하는 데이터 혼합 및 추출기; 및
    상기 데이터 혼합 및 추출기에서 출력되는 메모리 패킷의 폭을 조절하여 정합 라인 패킷으로 변환하거나, 입력된 정합 라인 패킷의 데이터 폭을 조절하여 상기 메모리 패킷으로 변환하여 데이터 혼합 및 추출기로 출력하는 비대칭 버퍼부를 포함하여 이루어지는 데이터 저장 장치.
  28. 제26항에 있어서, 상기 물리부는
    상기 정합 라인 패킷에 대하여 동일 패턴의 반복된 데이터 발생으로 인한 EMI(electro magnetic interference) 발생을 줄이기 위해 약속되어 있는 데이터 변환 및 복원을 수행하는 스크램블링 및 디스크램블링부;
    상기 정합 라인 패킷에 대하여 클럭 동기를 용이하게 하고, 정합 라인의 직류 전압 밸런스를 유지하고 데이터 패턴의 주파수 대역을 한정하기 위한 코딩 및 디코딩을 수행하는 인코딩 및 디코딩부; 및
    각 정합 라인 사이의 데이터 지연을 보상하는 데이터 정렬부 중에서 하나 이상을 포함하여 이루어지는 데이터 저장 장치.
  29. 제26항에 있어서, 상기 메모리 패킷은,
    정합 방식의 버전 정보, 메모리 액세스 요청 주체 및 시퀀스 번호 등을 알리는 아이디, 메모리 주소, 데이터 크기, 제어 정보, 상태 정보, 및 에러 체크 코드 중에서 하나 이상을 포함하는 정보 블록과,
    읽기 데이터 및 쓰기 데이터가 실리는 데이터 블록으로 이루어지는 데이터 저장 장치.
  30. 제27항에 있어서, 상기 비대칭 버퍼부는
    상호 비대칭의 입출력 구성을 갖는 A,B 사이드를 구비하고, 상기 A 사이드로 입력된 메모리 패킷을 임시 저장후 상기 B 사이드를 통해 정합 라인 패킷으로 출력하고, B 사이드로 입력된 정합 라인 패킷을 임시 저장후 상기 A 사이드를 통해 메모리 패킷으로 출력하는 비대칭 양방향 데이터 버퍼; 및
    상기 비대칭 양방향 데이터 버퍼에 대한 메모리 패킷 및 정합 라인 패킷의 입출력 흐름을 통제하는 입출력 통제 회로로 이루어지는 데이터 저장 장치.
  31. 제27항에 있어서, 상기 비대칭 버퍼부는
    상호 비대칭의 입출력 구성을 갖는 A,B 사이드를 구비하고, 상기 A 사이드로 메모리 패킷을 입력받아 임시 저장후 상기 B 사이드를 통해 정합 라인 패킷으로 출력하는 제1 비대칭 양방향 데이터 버퍼;
    상호 비대칭의 입출력 구성을 갖는 A,B 사이드를 구비하고, 상기 A 사이드로 정합 라인 패킷을 입력받아 임시 저장 후, B 사이드를 통해 메모리 패킷으로 출력하는 제2 비대칭 양방향 데이터 버퍼; 및
    상기 제1 비대칭 양방향 데이터 버퍼 및 제2 비대칭 양방향 데이터 버퍼에 대한 메모리 패킷 및 정합 라인 패킷의 입출력 흐름을 통제하는 입출력 통제 회로로 이루어지는 데이터 저장 장치.
  32. 제30항 또는 제31항에 있어서, 상기 입출력 통제 회로는
    메모리 패킷 및 정합 라인 패킷의 출력 라인에 구비되어, 데이터 입출력에 따라서 오픈 상태 및 정상 상태로 동작하는 복수의 3 상 버퍼로 이루어지는 것을 특징으로 하는 데이터 저장 장치.
KR1020070096879A 2007-09-21 2007-09-21 개방형 시리얼 정합 방식을 이용한 메모리 스위칭 컨트롤장치, 그의 동작 방법 및 이에 적용되는 데이터 저장 장치 KR100934227B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020070096879A KR100934227B1 (ko) 2007-09-21 2007-09-21 개방형 시리얼 정합 방식을 이용한 메모리 스위칭 컨트롤장치, 그의 동작 방법 및 이에 적용되는 데이터 저장 장치
US12/150,953 US8612713B2 (en) 2007-09-21 2008-05-01 Memory switching control apparatus using open serial interface, operating method thereof, and data storage device therefor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020070096879A KR100934227B1 (ko) 2007-09-21 2007-09-21 개방형 시리얼 정합 방식을 이용한 메모리 스위칭 컨트롤장치, 그의 동작 방법 및 이에 적용되는 데이터 저장 장치

Publications (2)

Publication Number Publication Date
KR20090031058A KR20090031058A (ko) 2009-03-25
KR100934227B1 true KR100934227B1 (ko) 2009-12-29

Family

ID=40472930

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070096879A KR100934227B1 (ko) 2007-09-21 2007-09-21 개방형 시리얼 정합 방식을 이용한 메모리 스위칭 컨트롤장치, 그의 동작 방법 및 이에 적용되는 데이터 저장 장치

Country Status (2)

Country Link
US (1) US8612713B2 (ko)
KR (1) KR100934227B1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019070374A1 (en) * 2017-10-02 2019-04-11 Micron Technology, Inc. VARIABLE MODULATION SYSTEM FOR ACCESSING OR OPERATING A MEMORY DEVICE
US11403241B2 (en) 2017-10-02 2022-08-02 Micron Technology, Inc. Communicating data with stacked memory dies
US11610613B2 (en) 2017-10-02 2023-03-21 Micron Technology, Inc. Multiple concurrent modulation schemes in a memory system

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101076869B1 (ko) * 2010-03-16 2011-10-25 광운대학교 산학협력단 코어스 그레인 재구성 어레이에서의 메모리 중심 통신 장치
CN103229155B (zh) 2010-09-24 2016-11-09 德克萨斯存储系统股份有限公司 高速内存系统
EP2669805A4 (en) * 2011-01-25 2016-08-31 Fujitsu Ltd MEMORY CONTROL METHOD AND SYSTEM
US8626994B2 (en) 2011-11-30 2014-01-07 Apple Inc. Systems and methods for improved communications in a nonvolatile memory system
KR102457820B1 (ko) 2016-03-02 2022-10-24 한국전자통신연구원 메모리 인터페이스 장치
US10355893B2 (en) 2017-10-02 2019-07-16 Micron Technology, Inc. Multiplexing distinct signals on a single pin of a memory device
US10490245B2 (en) 2017-10-02 2019-11-26 Micron Technology, Inc. Memory system that supports dual-mode modulation
CN107911176B (zh) * 2017-12-27 2024-06-18 长沙深之瞳信息科技有限公司 一种mini信号解调板及其操作方法
CN111984558A (zh) * 2019-05-22 2020-11-24 澜起科技股份有限公司 数据转换控制装置、存储设备以及存储器系统
KR20220139578A (ko) 2021-04-08 2022-10-17 한국전자통신연구원 메모리 액세스를 위한 직렬 통신 장치 및 시스템
KR102626430B1 (ko) * 2021-09-30 2024-01-17 주식회사 와이앤와이 Smt 공정의 다채널 데이터 라이트/검증 장치

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR0135927B1 (ko) * 1994-11-21 1998-06-15 양승택 다중 프로세서 시스템에서 아토믹 명령어 수행시 데이타 버퍼를 사용한 메인 메모리 액세스 장치
KR19990029295A (ko) * 1997-09-18 1999-04-26 포만 제프리 엘 가변폭 버스의 동시적인 액세스를 이용하는 다중프로세서시스템에서 i/o 제어를 위한 방법 및 시스템
KR20070061196A (ko) * 2005-12-08 2007-06-13 한국전자통신연구원 가변 시리얼 정합 방식의 메모리 시스템 및 그 메모리액세스 방법

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5301278A (en) * 1988-04-29 1994-04-05 International Business Machines Corporation Flexible dynamic memory controller
DE69423085T2 (de) * 1993-12-28 2000-06-21 Sony Corp Geräte zur Übertragung von Information
US5742797A (en) * 1995-08-11 1998-04-21 International Business Machines Corporation Dynamic off-screen display memory manager
KR100244225B1 (ko) * 1997-12-10 2000-02-01 구자홍 디티브이의 입력 영상 변환장치
CA2310909C (en) * 1999-06-12 2005-05-24 Jinoo Joung Packet switching apparatus and method in data network
JP2001060967A (ja) * 1999-08-23 2001-03-06 Fujitsu Ltd パケットスイッチ装置
US6820152B2 (en) * 2001-04-25 2004-11-16 Matsushita Electric Industrial Co., Ltd. Memory control device and LSI
US6964049B2 (en) * 2001-07-18 2005-11-08 Smartmatic Corporation Smart internetworking operating system for low computational power microprocessors
US7941056B2 (en) 2001-08-30 2011-05-10 Micron Technology, Inc. Optical interconnect in high-speed memory systems
WO2004092904A2 (en) * 2003-04-10 2004-10-28 Silicon Pipe, Inc. Memory system having a multiplexed high-speed channel
US7016213B2 (en) 2003-05-13 2006-03-21 Advanced Micro Devices, Inc. Method for initializing a system including a host and plurality of memory modules connected via a serial memory interconnect
US20050210185A1 (en) 2004-03-18 2005-09-22 Kirsten Renick System and method for organizing data transfers with memory hub memory modules
US7254663B2 (en) * 2004-07-22 2007-08-07 International Business Machines Corporation Multi-node architecture with daisy chain communication link configurable to operate in unidirectional and bidirectional modes
US7539912B2 (en) * 2005-12-15 2009-05-26 King Tiger Technology, Inc. Method and apparatus for testing a fully buffered memory module

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR0135927B1 (ko) * 1994-11-21 1998-06-15 양승택 다중 프로세서 시스템에서 아토믹 명령어 수행시 데이타 버퍼를 사용한 메인 메모리 액세스 장치
KR19990029295A (ko) * 1997-09-18 1999-04-26 포만 제프리 엘 가변폭 버스의 동시적인 액세스를 이용하는 다중프로세서시스템에서 i/o 제어를 위한 방법 및 시스템
KR20070061196A (ko) * 2005-12-08 2007-06-13 한국전자통신연구원 가변 시리얼 정합 방식의 메모리 시스템 및 그 메모리액세스 방법

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019070374A1 (en) * 2017-10-02 2019-04-11 Micron Technology, Inc. VARIABLE MODULATION SYSTEM FOR ACCESSING OR OPERATING A MEMORY DEVICE
US11403241B2 (en) 2017-10-02 2022-08-02 Micron Technology, Inc. Communicating data with stacked memory dies
US11610613B2 (en) 2017-10-02 2023-03-21 Micron Technology, Inc. Multiple concurrent modulation schemes in a memory system
US11775460B2 (en) 2017-10-02 2023-10-03 Micron Technology, Inc. Communicating data with stacked memory dies
US11971820B2 (en) 2017-10-02 2024-04-30 Lodestar Licensing Group Llc Variable modulation scheme for memory device access or operation

Also Published As

Publication number Publication date
US20090083457A1 (en) 2009-03-26
KR20090031058A (ko) 2009-03-25
US8612713B2 (en) 2013-12-17

Similar Documents

Publication Publication Date Title
KR100934227B1 (ko) 개방형 시리얼 정합 방식을 이용한 메모리 스위칭 컨트롤장치, 그의 동작 방법 및 이에 적용되는 데이터 저장 장치
US6526462B1 (en) Programmable multi-tasking memory management system
TWI331281B (en) Method and apparatus for shared i/o in a load/store fabric
KR101077900B1 (ko) 네트워크 효율성을 고려한 SoC 기반 시스템 네트워크에서의 인터페이스 장치의 통신방법 및 그에 의해 통신하는 인터페이스 장치
TWI292990B (en) Method and apparatus for shared i/o in a load/store fabric
US8156270B2 (en) Dual port serial advanced technology attachment (SATA) disk drive
US8266353B2 (en) Serial advanced technology attachment (SATA ) switch
US8074002B2 (en) Route aware serial advanced technology attachment (SATA) switch
US6850998B2 (en) Disk array system and a method for controlling the disk array system
KR20070089556A (ko) Dma 데이터 전송 장치 및 dma 데이터 전송 방법
US5802333A (en) Network inter-product stacking mechanism in which stacked products appear to the network as a single device
JP2020113137A (ja) ストレージ装置
US20090240851A1 (en) Usb controller and buffer memory control method
KR20070061196A (ko) 가변 시리얼 정합 방식의 메모리 시스템 및 그 메모리액세스 방법
US20070168583A1 (en) Endpoint control apparatus and method thereof
KR101857911B1 (ko) 가상채널을 이용한 다중 채널 메모리 제어기
JPH11234319A (ja) バススイッチ
EP1513071A2 (en) Memory bandwidth control device
KR101197294B1 (ko) QoS 및 전송 효율 개선을 위한 SoC 기반 시스템 네트워크에서의 인터페이스 장치의 통신방법
KR980013132A (ko) 고 처리 능력의 주변 구성 요소 상호 접속 버스를 가진 데이터 처리 및 통신 시스템
US7451254B2 (en) System and method for adaptive buffer allocation in a memory device interface
JP4432388B2 (ja) 入出力制御装置
US20030093594A1 (en) Apparatus and method for controlling block signal flow in a multi digital signal processor configuration from a shared peripheral direct memory controller to high level data link controller
JP2007226494A (ja) データ転送システム
JP4930554B2 (ja) 入出力制御装置

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: 20121129

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20131128

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee