KR20110019491A - 데이터 처리 방법 및 데이터 처리 시스템 - Google Patents

데이터 처리 방법 및 데이터 처리 시스템 Download PDF

Info

Publication number
KR20110019491A
KR20110019491A KR1020090077035A KR20090077035A KR20110019491A KR 20110019491 A KR20110019491 A KR 20110019491A KR 1020090077035 A KR1020090077035 A KR 1020090077035A KR 20090077035 A KR20090077035 A KR 20090077035A KR 20110019491 A KR20110019491 A KR 20110019491A
Authority
KR
South Korea
Prior art keywords
data
processor
memory bank
written
memory device
Prior art date
Application number
KR1020090077035A
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 KR1020090077035A priority Critical patent/KR20110019491A/ko
Priority to US12/820,452 priority patent/US20110047320A1/en
Publication of KR20110019491A publication Critical patent/KR20110019491A/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
    • 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/1663Access to shared memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)
  • Information Transfer Systems (AREA)

Abstract

데이터 처리 시스템의 데이터 처리 방법이 개시된다. 상기 방법은 커맨드 패킷을 수신하여 해석하는 단계와, 해석된 커맨드 패킷에 따라 메모리 장치의 제1메모리 뱅크에 라이트된 제1데이터를 불휘발성 메모리에 라이트거나 또는 상기 제1메모리 뱅크에 라이트된 제2데이터를 상기 메모리 장치의 제2메모리 뱅크로 복사한 후 상기 제2메모리 뱅크로 복사된 상기 제2데이터를 상기 불휘발성 메모리에 라이트하는 단계를 포함한다.
커맨드 패킷, 공유 메모리, 불휘발성 메모리

Description

데이터 처리 방법 및 데이터 처리 시스템{Method and system for processing data}
본 발명의 개념에 따른 실시 예는 데이터 처리 기술에 관한 것으로, 특히 데이터의 사이즈에 따라 상기 데이터를 다르게 처리할 수 있는 데이터 처리 방법 및 데이터 처리 시스템에 관한 것이다.
데이터 처리 장치는 좀 더 빠르고 정확하게 데이터를 처리해야 한다. 특히, 라이트 데이터를 상기 데이터 처리 장치의 데이터 저장 장치에 라이트하는데 있어서 라이트 성능은 상기 데이터 처리 장치의 성능을 좌우한다.
따라서 상기 라이트 데이터를 좀더 빠르게 라이트할 수 있는 기술이 필요하다.
따라서 본 발명이 이루고자 하는 기술적인 과제는 데이터의 사이즈에 따라 상기 데이터를 다르게 처리하여 라이트 성능을 극대화할 수 있는 데이터 처리 방법 및 데이터 처리 시스템을 제공하는 것이다.
본 발명의 실시 예에 따른 데이터 처리 시스템의 데이터 처리 방법은 커맨드 패킷을 수신하여 해석하는 단계와, 해석된 커맨드 패킷에 따라, 메모리 장치의 제1메모리 뱅크에 라이트된 제1데이터를 불휘발성 메모리에 라이트거나 또는 상기 제1메모리 뱅크에 라이트된 제2데이터를 상기 메모리 장치의 제2메모리 뱅크로 복사한 후 상기 제2메모리 뱅크로 복사된 상기 제2데이터를 상기 불휘발성 메모리에 라이트하는 단계를 포함한다.
상기 데이터 처리 시스템의 데이터 처리 방법은 입력 데이터의 크기와 기준 데이터의 크기의 비교 결과에 따라 상기 커맨드 패킷을 생성하는 단계를 더 포함한다. 상기 제2데이터의 크기는 상기 제1데이터의 크기보다 크다.
본 발명의 실시 예에 따른 데이터 처리 시스템은 불휘발성 메모리 장치와, 커맨드 패킷을 수신하여 해석하기 위한 제1프로세서와, 메모리 장치를 포함한다. 상기 제1프로세서는, 해석된 커맨드 패킷에 따라, 상기 메모리 장치의 제1메모리 뱅크에 라이트된 제1데이터를 상기 불휘발성 메모리 장치에 라이트하거나 또는 상기 제1메모리 뱅크에 라이트된 제2데이터를 상기 메모리 장치의 제2메모리 뱅크로 복사한 후 상기 제2메모리 뱅크로 복사된 상기 제2데이터를 상기 불휘발성 메모리 장치에 라이트한다.
상기 제1메모리 뱅크에 새로운 데이터가 라이트되는 동안 상기 제1프로세서는 상기 제2메모리 뱅크로 복사된 상기 제2데이터를 상기 불휘발성 메모리 장치에 라이트한다.
상기 데이터 처리 시스템은 입력 데이터의 크기와 기준 데이터의 크기의 비교 결과에 기초하여 상기 커맨드 패킷을 생성하기 위한 제2프로세서를 더 포함하고, 상기 제2프로세서는 상기 커맨드 패킷이 전송되는 경로와 다른 경로를 통하여 상기 입력 데이터에 상응하는 상기 제1데이터 또는 상기 제2데이터를 상기 제1메모리 뱅크에 라이트한다.
상기 제1프로세서가 상기 제2메모리 뱅크로 복사된 상기 제2데이터를 상기 불휘발성 메모리 장치에 라이트하는 동안, 상기 제2프로세서는 새로운 데이터를 상기 제1메모리 뱅크에 라이트한다. 상기 데이터 처리 시스템은 메모리 카드이다.
본 발명의 실시 예에 따른 데이터 처리 시스템의 데이터 처리 방법은 데이터의 크기에 따라 상기 데이터를 버퍼드 동작 또는 언버퍼드 동작으로 제어할 수 있어 라이트 성능을 극대화할 수 있는 효과가 있다.
본 명세서 또는 출원에 개시되어 있는 본 발명의 개념에 따른 실시 예들에 대해서 특정한 구조적 내지 기능적 설명들은 단지 본 발명의 개념에 따른 실시 예를 설명하기 위한 목적으로 예시된 것으로, 본 발명의 개념에 따른 실시 예들은 다양한 형태로 실시될 수 있으며 본 명세서 또는 출원에 설명된 실시 예들에 한정되는 것으로 해석되어서는 아니된다.
본 발명의 개념에 따른 실시 예는 다양한 변경을 가할 수 있고 여러 가지 형태를 가질 수 있으므로 특정 실시 예들을 도면에 예시하고 본 명세서 또는 출원에 상세하게 설명하고자 한다. 그러나, 이는 본 발명의 개념에 따른 실시 예을 특정한 개시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
제1 및/또는 제2 등의 용어는 다양한 구성 요소들을 설명하는데 사용될 수 있지만, 상기 구성 요소들은 상기 용어들에 의해 한정되어서는 안된다. 상기 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로만, 예컨대 본 발명의 개념에 따른 권리 범위로부터 이탈되지 않은 채, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소는 제1 구성요소로도 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.
본 명세서에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 " 가지다" 등의 용어는 설시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 첨부한 도면을 참조하여 본 발명의 바람직한 실시 예를 설명함으로써, 본 발명을 상세히 설명한다.
도 1은 본 발명의 실시 예에 따른 데이터 처리 시스템의 블락도를 나타낸다. 상기 데이터 처리 시스템(10)은 PC(personal computer), 메모리 카드, 스마트 카드, 이동 전화기, PDA, PMP, 디지털 카메라, 또는 솔리드 스테이트 드라이브(solid state drive)로 구현될 수 있다.
상기 데이터 처리 시스템(10)은 제2프로세서(31), 불휘발성 메모리 장치(33), 및 메모리 장치(35)를 포함할 수 있다. 또한, 상기 데이터 처리 시스템 (10)은 제1프로세서(20)를 더 포함할 수 있다. 실시 예에 따라 제2프로세서(31)와 불휘발성 메모리 장치(33), 또는 제2프로세서(31)와 불휘발성 메모리 장치(33)와 메모리 장치(35)는 하나의 장치, 예컨대 MLA(Memory Link Architecture)를 구성할 수 있다. 예컨대, 제2프로세서(31), 불휘발성 메모리 장치(33), 및 메모리 장치 (35)는 하나의 메모리 카드에 구현될 수 있다. 데이터 처리 시스템(10)은 임베디드 스토리지 솔루션(embeded storage solution)일 수 있다.
CPU로 구현될 수 있는 제1프로세서(20)는 라이트 데이터(DATA)의 크기와 기준 데이터의 크기를 서로 비교하고, 비교 결과에 따라 커맨드 패킷(PAC)을 생성하고, 생성된 커맨드 패킷(PAC)을 제2프로세서(31)로 전송할 수 있다. 예컨대, 제1프로세서(20)는 생성된 커맨드 패킷(PAC)을 SD 카드 프로토콜 또는 MMC 프로토콜에 따라 제2프로세서(31)로 전송할 수 있다. 이때, 상기 기준 데이터의 크기는 외부로부터 프로그램가능하다.
제1프로세서(20)는 라이트 데이터(DATA)를 메모리 장치(35)로 전송할 수 있다. 예컨대, 제1프로세서(20)는 라이트 데이터(DATA)를 DRAM 프로토콜에 따라 메모리 장치(35)로 전송할 수 있다.
도 2는 도 1에 도시된 커맨드 패킷의 일 실시 예를 나타낸다. 도 2에 도시된 바와 같이, 제1프로세서(20)의 의하여 생성되는 패킷(100)은 명령 정보(CMD), 동작 정보(예컨대, 버퍼드(buffered) 동작 또는 언버퍼드(unbuffered) 동작에 대한 정보; IB), 라이트 데이터(DATA)가 저장될 공유 메모리 뱅크의 영역 정보(ADD1), 라이트 데이터(DATA)가 저장될 불휘발성 메모리의 영역 정보(ADD2), 및 라이트 데이터(DATA)의 크기 정보(IOS)를 포함할 수 있다.
예컨대, 라이트 명령을 지시하기 위하여 명령 정보(CMD)는 1로 설정되고 리 드 명령을 지시하기 위하여 명령 정보(CMD)는 0으로 설정될 수 있다. 예컨대, 라이트 데이터(DATA)의 크기가 기준 데이터의 크기보다 클 때, 상기 제1프로세서(20)는 동작 정보(IB)를 1로 설정할 수 있다. 반대로 라이트 데이터 (DATA)의 크기가 기준 데이터의 크기보다 작을 때, 상기 제1프로세서(20)는 동작 정보(IB)를 0으로 설정할 수 있다.
제1프로세서(20)는 라이트 데이터(DATA)의 크기에 따라 커맨드 패킷(PAC)을 생성한 후 라이트 데이터(DATA)를 메모리 장치(35)의 공유 메모리 뱅크(도 3의 44)에 라이트할 수 있다. 예컨대, 제1프로세서(20)가 공유 메모리 뱅크(도 3의 44)에 대한 액세스 권한을 가질 때 제1프로세서(20)는 라이트 데이터(DATA)를 공유 메모리 뱅크(도 3의 44)에 라이트할 수 있다.
그러나, 제1프로세서(20)가 공유 메모리 뱅크(도 3의 44)에 대한 액세스 권한을 갖지 않을 때, 제1프로세서(20)는 제2프로세서(31)로부터 공유 메모리 뱅크(도 3의 44)에 대한 액세스 권한을 넘겨받을 후 라이트 데이터(DATA)를 공유 메모리 뱅크(도 3의 44)에 라이트할 수 있다.
제2프로세서(31)는 수신된 커맨드 패킷(PAC)을 해석(또는, 디코딩)하고 해석(또는, 디코딩) 결과에 따라 공유 메모리 뱅크(도 3의 44)를 액세스할 수 있다.
예컨대, 동작 정보(IB)가 0일 때, 제2프로세서(31)는 수신된 커맨드 패킷 (PAC)에 따라 공유 메모리 뱅크(도 3의 44)에 저장된 라이트 데이터(DATA)를 불휘발성 메모리 장치(33)에 라이트할 수 있다. 이를 언버퍼드 라이트 동작(unbuffered write operation)이라 한다.
그러나, 동작 정보(IB)가 1일 때, 제2프로세서(31)는 공유 메모리 뱅크의 영역 정보(ADD1)에 따라 공유 메모리 뱅크(도 3의 44)에 저장된 라이트 데이터(DATA)를 리드하고, 리드된 라이트 데이터(DATA)를 제2프로세서(31)의 로컬 메모리 뱅크, 예컨대 전용 메모리 뱅크(도 3의 42)로 복사(또는 라이트)하고, 전용 메모리 뱅크(도 3의 42)로 복사(또는 라이트)된 라이트 데이터를 불휘발성 메모리의 영역 정보 (ADD2)에 따라 불휘발성 메모리 장치(33)에 라이트할 수 있다. 이를 버퍼드 라이트 동작(buffered write operation)이라 한다.
전용 메모리 뱅크(도 3의 42)를 액세스할 때, 제2프로세서(31)는 전용 메모리 뱅크 영역 정보를 생성하고 생성된 전용 메모리 뱅크 영역 정보를 사용할 수 있다. 따라서, 불휘발성 메모리 장치(33)는 언버퍼드 라이트 동작에 따른 데이터 또는 버퍼드 라이트 동작에 따른 데이터를 수신하여 저장할 수 있다.
불휘발성 메모리 장치(33)는 EEPROM(Electrically Erasable Programmable Read-Only Memory), 플래시 메모리, MRAM(Magnetic RAM), 스핀전달토크 MRAM (Spin-Transfer Torque MRAM), Conductive bridging RAM(CBRAM), FeRAM (Ferroelectric RAM), OUM(Ovonic Unified Memory)라고도 불리는 PRAM(Phase change RAM), 저항 메모리(Resistive RAM: RRAM 또는 ReRAM), 나노퓨브 RRAM(Nanotube RRAM), 폴리머 RAM(Polymer RAM: PoRAM), 나노 부유 게이트 메모리 (Nano Floating Gate Memory: NFGM), 홀로그래픽 메모리 (holographic memory), 분자 전자 메모리 소자(Molecular Electronics Memory Device), 또는 절연 저항 변화 메모리(Insulator Resistance Change Memory)로 구현될 수 있다.
도 3은 도 1에 도시된 메모리 장치의 내부 블락도를 나타낸다. 도 3을 참조하면, 메모리 장치(35)는 제1포트(41), 다수의 메모리 뱅크들 (42, 44, 46, 및 48), 및 제2포트(43)를 포함할 수 있다.
제1포트(41)는 제2프로세서(31)와 데이터 및/또는 상기 데이터의 입출력에 관련된 제어 신호들을 주고받는 기능을 수행하고, 제2포트(43)는 제1프로세서(20)와 데이터 및/또는 상기 데이터의 입출력에 관련된 제어 신호들을 주고받는 기능을 수행한다.
따라서 제1포트(41)는 그 명칭에도 불구하고 제2프로세서(31)와 데이터 및/또는 상기 데이터의 입출력에 관련된 제어 신호들을 주고받기 위한 인터페이스 또는 컨트롤러를 의미한다. 또한, 제2포트(43)는 그 명칭에도 불구하고 제1프로세서 (20)와 데이터 및/또는 상기 데이터의 입출력에 관련된 제어 신호들을 주고받기 위한 인터페이스 또는 컨트롤러를 의미한다. 상기 인터페이스는 다수의 논리 회로들을 포함하는 하드웨어로 구현될 수 있다. 또한, 상기 인터페이스는 상기 하드웨어와 상기 하드웨어의 동작을 제어하는 펌웨어 또는 소프트웨어가 탑재된 전자적 기록 매체(예컨대, 마이크로프로세서)를 포함할 수 있다.
메모리 뱅크(42)는 제1포트(41)와 통신하는 제2프로세서(31)에 의해서만 액세스(예컨대, 라이트 동작 또는 리드 동작을 위한 액세스)될 수 있는 전용 메모리 뱅크이다. 메모리 뱅크들(46과 48) 각각은 제2포트(43)와 통신하는 제1프로세서 (20)에 의해서만 액세스될 수 있는 전용 메모리 뱅크이다.
메모리 뱅크(44)는 접근 권한, 예컨대 세머포 레지스터(51)에 저장된 값에 따라 제1프로세서(20) 또는 제2프로세서(31)에 의하여 액세스될 수 있는 공유 메모리 뱅크이다. 제1프로세서(20)로부터 출력된 라이트 데이터(DATA)는 공유 메모리 뱅크(44)에 저장된다.
공유 메모리 뱅크(44)는 내부 레지스터들(51~56)을 포함할 수 있다. 예컨대 내부 레지스터들(51~56)은 하나의 로우 사이즈(row size)에 해당하는 크기, 예컨대 2KByte일 수 있다. 예컨대, 특정한 로우 어드레스가 제1프로세서(20)로부터 메모리 장치(35)로 입력될 때, 공유 메모리 뱅크(44)의 특정한 영역은 디스에이블되고 내부 레지스터들(51~56)이 인에이블될 수 있다.
내부 레지스터들(51~56)은 세머포 레지스터(semaphore register; 51), 메일박스 레지스터들(52와 53), 체크 레지스터들(54와 55), 및 유보 레지스터(reserved register; 56)를 포함할 수 있다. 내부 레지스터들(51~55)은 제1프로세서(20)와 제2프로세서(31)가 동시에 공유 메모리 뱅크(44)를 액세스할 때 발생할 수 있는 충돌 상황(conflict situation)을 해결하고 제1프로세서(20)와 제2프로세서(31) 사이의 액세스 권한(access authority)과 데이터의 전송을 허가할 수 있다.
세머포 레지스터(51)는 공유 메모리 뱅크(44)에 대한 액세스 권한을 어떤 포트, 예컨대 제1포트(41) 또는 제2포트(43)가 가지고 있는지를 나타내는 비트를 저장할 수 있다. 다시 말하면, 세머포 레지스터(51)는 공유 메모리 뱅크(44)에 대한 액세스 권한을 어떤 프로세서(20과 31)가 가지고 있는지를 나타내는 비트를 저장할 수 있다.
예컨대, 세머포 레지스터(51)의 값 1은 제2포트(43)와 통신하는 제1프로세 서(20)가 공유 메모리 뱅크(44)에 대한 액세스 권한이 있음을 나타내고, 세머포 레지스터(51)의 값 0은 제1포트(41)와 통신하는 제2프로세서(31)가 공유 메모리 뱅크 (44)에 대한 액세스 권한이 있음을 나타낼 수 있다. 실시 예에 따라, 그 반대의 경우도 가능하다. 세머포 레지스터(51)의 값은 액세스 권한을 가진 포트(41 또는 43)에 접속된 프로세서(20 또는 31)에 의해서만 라이트될 수 있다.
예컨대, 제2프로세서(31)로부터 제1프로세서(20)로 어떤 메시지를 전송하기 위하여 메일 박스 레지스터(MailBox AB; 52)는 제2프로세서(31)에 의하여 라이트될 수 있고 제1프로세서(20)에 의하여 리드될 수 있다. 반대로, 제1프로세서(20)로부터 제2프로세서(31)로 어떤 메시지를 전송하기 위하여 메일 박스 레지스터(MailBox BA; 53)는 제1프로세서(20)에 의하여 라이트될 수 있고 제2프로세서(31)에 의하여 리드될 수 있다.
각 메일 박스 레지스터(52 또는 53)에 어떤 메시지가 라이트된 경우, 각 인터럽트 신호(INTA와 INTB)가 발생한다. 예컨대, 메일 박스 레지스터(MailBox AB; 52)에 어떤 메시지가 라이트된 경우, 인터럽트 신호(INT B)는 제2포트(43)를 통하여 제1프로세서(20)로 전송될 수 있다. 또한, 메일 박스 레지스터(MailBox BA; 53)에 어떤 메시지가 라이트된 경우, 인터럽트 신호(INT A)는 제1포트(41)를 통하여 제2프로세서(31)로 전송될 수 있다.
각 체크 레지스터(54와 55)의 값은 각 메일 박스 레지스터(52와 53)에 라이트된 메시지가 반대 포트에 의하여 리드되었는지를 나타낼 수 있다. 예컨대, 제2프로세서(31)가 메일 박스 레지스터(MailBox AB; 52)로 라이트 명령을 출력한 경우, 체크 레지스터(Check AB; 54)의 값은 1로 설정될 수 있고, 제1프로세서(20)가 메일 박스 레지스터(MailBox AB; 52)로 리드 명령을 출력한 경우 체크 레지스터(Check AB; 54)의 값은 0으로 설정될 수 있다.
도 4는 도 1에 도시된 제2프로세서의 내부 블락도를 나타낸다. 도 4를 참조하면, 제2프로세서(31)은 ASIC(application-specific integrated circuit)으로 구현될 수 있다. 제2프로세서(31)는 다수의 컨트롤러들(51, 52, 및 53), 프로세서(54), 브리지(57), ROM(55), 및 다수의 버스들(BUS1과 BUS2)을 포함할 수 있다.
제1컨트롤러(51)는 제1프로세서(20)로부터 출력된 커맨드 패킷(PAC)을 수신하고 수신된 커맨드 패킷(PAC)을 버스(BUS1)를 통하여 브리지(57)로 출력한다. 예컨대, 제1컨트롤러(51)가 SD 카드 프로토콜 또는 MMC 프로토콜을 지원하는 인터페이스일 때, 제1컨트롤러(51)는 제1프로세서(20)와 상기 SD 카드 프로토콜 또는 상기 MMC 프로토콜에 따라 신호들을 주고받을 수 있다.
제2컨트롤러(52)는 메모리 장치(35)의 제1포트(41)와 데이터를 주고받기 위한 인터페이스일 수 있다. 예컨대, 제2컨트롤러(52)가 DRAM 프로토콜을 지원하는 인터페이스일 때, 제2컨트롤러(52)는 메모리 장치(35)와 상기 DRAM 프로토콜에 따라 신호들을 주고받을 수 있다.
제3컨트롤러(53)은 불휘발성 메모리 장치(33)와 데이터를 주고받기 위한 인터페이스일 수 있다. 예컨대, 제3컨트롤러(53)가 NAND 플래시 메모리 프로토콜을 지원할 수 있는 인터페이스일 때, 제3컨트롤러(53)는 불휘발성 메모리 장치(33)와 상기 NAND 플래시 메모리 프로토콜에 따라 신호들을 주고받을 수 있다.
즉, 각 컨트롤러(51, 52, 및 53)는 그 명칭에도 불구하고 각 접속된 장치 (20, 35, 및 33)와 데이터 및/또는 상기 데이터의 전송에 관련된 제어 신호들을 주고받기 위한 인터페이스일 수 있다.
프로세서(54)는 ROM(55)에 저장된 프로그램을 로딩하여 실행할 수 있다. 실시 예에 따라, 상기 프로그램은 본 발명의 실시 예에 따른 버퍼드 라이트 동작 또는 언버퍼드 라이트 동작을 제어할 수 있는 프로그램 코드들일 수 있다. 또한, 프로세서(54)는 제1프로세서(20)로부터 출력된 커맨드 패킷(PAC)을 해석하고 해석 결과에 따라 각 컨트롤러(51, 52, 및 53)의 동작을 제어할 수 있다.
예컨대, 장치(30)가 언버퍼드 라이트 동작을 수행할 때, 프로세서(54)는, 제1컨트롤러(51)와 브리지(57)를 통하여 입력된 커맨드 패킷(PAC)에 따라, 공유 메모리 뱅크(44)에 라이트된 데이터를 제2컨트롤러(52)를 통하여 리드하고, 리드된 데이터를 제3컨트롤러(53)를 통하여 불휘발성 메모리 장치(33)에 라이트할 수 있다.
또한, 장치(30)가 버퍼드 라이트 동작을 수행할 때, 프로세서(54)는, 제1컨트롤러(51)와 브리지(57)를 통하여 입력된 커맨드 패킷(PAC)에 따라, 공유 메모리 뱅크(44)에 라이트된 데이터를 전용 메모리 뱅크(42)로 복사(또는 라이트)하고, 전용 메모리 뱅크(42)로 복사(또는 라이트)된 데이터를 제2컨트롤러(52)를 통하여 리드하고, 리드된 데이터를 제3컨트롤러(53)를 통하여 불휘발성 메모리 장치(33)에 라이트할 수 있다. 이를 데이터의 버퍼링 동작이라 한다.
브리지(57)는 다수의 버스들(BUS1과 BUS2) 사이에서 주고받는 데이터의 프로토콜 및/또는 상기 데이터의 전송에 관련된 제어 신호들의 프로토콜을 변환할 수 있다.
도 6은 도 1에 도시된 데이터 처리 시스템의 버퍼드 라이트 동작의 타이밍 도를 나타낸다. 도 5를 참조하여 버퍼트 라이트 동작을 설명하면, 제1프로세서(20)는 제1라이트 데이터(D0)를 수신하여 처리하고 커맨드 패킷(PAC)을 생성한다(111).
공유 메모리 뱅크(44)에 대한 액세스 권한을 획득한 제1프로세서(20)는 메모리 장치(35)의 공유 메모리 뱅크(44)에 제1라이트 데이터를 라이트한다(112). 이때, 제1프로세서(20)는 메일박스 레지스터(53)에 소정의 메시지를 라이트한다. 따라서 인터럽트 신호(INT A)는 제1포트(41)를 통하여 제2프로세서(31)로 전송된다.
공유 메모리 뱅크(44)에 대한 액세스 권한을 획득한 제2프로세서(31)는 커맨드 패킷(PAC)에 응답하여 공유 메모리 뱅크(44)에 라이트된 제1라이트 데이터를 리드한다(113).
제2프로세서(31)는 해석된 커맨드 패킷(PAC)에 따라 공유 메모리 뱅크(44)로부터 리드된 제1라이트 데이터를 전용 메모리 뱅크(42)로 복사(또는, 라이트)한다 (114). 113과 114가 수행되는 동안, 제1프로세서(20)는 제2라이트 데이터(D1)를 수신하여 처리하고 커맨드 패킷(PAC)을 생성한다(115).
제2프로세서(31)가 해석된 커맨드 패킷(PAC)에 따라 전용 메모리 뱅크(42)로부터 제1라이트 데이터를 리드하고 리드된 제1라이트 데이터를 불휘발성 메모리 장치(33)에 라이트하는 동안(117), 공유 메모리 뱅크(44)에 대한 액세스 권한을 획득한 제1프로세서(20)는 메모리 장치(35)의 공유 메모리 뱅크(44)에 제2라이트 데이터를 라이트한다(116). 117이 수행되는 동안, 제1프로세서(20)는 제3라이트 데이 터(D2)를 수신하여 처리하고 커맨드 패킷(PAC)을 생성한다(118).
따라서, 실시 예에 따른 데이터 처리 시스템(10)은 116과 117을 동시에 수행할 수 있다. 또한, 실시 예에 따른 데이터 처리 시스템(10)은 116이 완료되는 시점과 118이 시작되는 시점 사이의 구간 동안 117을 수행할 수 있으므로 라이트 성능을 향상시킬 수 있는 효과가 있다.
도 6은 도 1에 도시된 데이터 처리 시스템의 버퍼드 라이트 동작의 다른 타이밍 도를 나타낸다. 도 6을 참조하면, 공유 메모리 뱅크(44)에 대한 액세스 권한을 획득한 제2프로세서(31)는 117이 종료된 직 후에 공유 메모리 뱅크(44)에 라이트된 제2라이트 데이터(D1)를 리드할 수 있으므로 히든 파워 오프에 따른 데이터의 신뢰성을 확보할 수 있는 효과가 있다.
도 7은 본 발명의 실시 예에 따른 데이터 처리 시스템의 데이터 처리 방법을 설명하기 위한 플로우차트이다. 도 1부터 도 7을 참조하여 데이터 처리 시스템의 데이터 처리 방법을 설명하면 다음과 같다.
제1프로세서(20)는 외부로부터 입력된 명령이 라이트 명령인지를 판단한다(S10). 제1프로세서(20)는 장치(30)의 상태를 체크한다(S20). 장치(30)의 상태가 슬립(sleep) 상태, 딥 슬립(dip sleep) 상태, 또는 스텐바이(standby) 상태일 때, 제1프로세서(20)는 장치(30)를 웨이크 업(wake up)시킨다(S21).
제1프로세서(20)는 메모리 장치(35)의 공유 메모리 뱅크(SHB; 44)에 대한 액세스 권한, 즉 오너쉽이 있는지의 여부를 판단한다(S30). 예컨대, 제1프로세서(20)는 세머포 레지스터(51)에 저장된 비트를 리드하여 판단할 수 있다. 만일, 제2프로 세서(31)가 공유 메모리 뱅크(SHB; 44)에 대한 액세스 권한을 가질 때, 제1프로세서(20)는 제2프로세서(31)로 공유 메모리 뱅크(SHB; 44)에 대한 액세스 권한의 변경을 요청한다(S31). 이때 제1프로세서(20)는 메일 박스 레지스터(53)를 이용할 수 있다.
제1프로세서(20)가 공유 메모리 뱅크(SHB; 44)에 대한 액세스 권한을 갖는 경우, 제1프로세서(20)는 데이터(DATA)의 크기와 기준 크기의 비교 결과에 상응하는 커맨드 패킷(PAC)을 생성하고 생성된 커맨드 패킷(PAC)을 제2프로세서(31)로 전송한다. 제1프로세서(20)는 제어 신호들을 이용하여 상기 데이터(DATA)를 공유 메모리 뱅크(SHB; 44)에 라이트한다(S40).
제1프로세서(20)는 상기 데이터(DATA)가 공유 메모리 뱅크(SHB; 44)에 라이트되었음을 제2프로세서(31)에 알리기 위하여 메일 박스 레지스터(MailBox_BA; 53)에 메시지를 라이트하고, 세머포 레지스터(51)의 비트를 1에서 0으로 변경한다(S50). 상기 메일 박스 레지스터(MailBox_BA; 53)에 상기 메시지가 라이트되면, 활성화된 인터럽트 신호(INT A)가 제1포트(41)를 통하여 제2프로세서(31)로 전송된다.
제2프로세서(31)는 상기 활성화된 인터럽트 신호(INT A)에 응답하여 상기 메일 박스 레지스터(MailBox_BA; 53)에 라이트된 상기 메시지를 리드한다(S60). 따라서, 제2프로세서(31)는 리드된 메시지에 기초하여 공유 메모리 뱅크(SHB; 44)에 대한 액세스 권한이 변경됨을 인식한다.
제2프로세서(31)는 수신된 커맨드 패킷(PAC)에 포함된 동작 정보(IB)를 해석 하고 해석 결과에 따라 버퍼드 라이트 동작 또는 언버퍼드 라이트 동작을 수행할지를 인식한다(S70).
상기 제2프로세서(31)가 상기 버퍼드 라이트 동작을 수행할 때, 상기 제2프로세서(31)는 공유 메모리 뱅크 영역 정보(ADD1)에 따라 공유 메모리 뱅크(44)에 라이트된 데이터를 리드하고, 리드된 데이터를 메모리 뱅크(42)에 라이트하고(S72), 상기 메모리 뱅크(42)에 라이트된 데이터를 불휘발성 메모리 영역 정보(ADD2)에 따라 불휘발성 메모리 장치(33)에 라이트한다(S74).
상기 제2프로세서(31)가 상기 언버퍼드 라이트 동작을 수행할 때, 상기 제2프로세서(31)는 공유 메모리 뱅크 영역 정보(ADD1)에 따라 공유 메모리 뱅크(44)에 라이트된 데이터를 리드하고, 리드된 데이터를 불휘발성 메모리 영역 정보(ADD2)에 따라 불휘발성 메모리 장치(33)에 라이트한다(S76).
상기 버퍼드 라이트 동작 또는 상기 언버퍼드 라이트 동작이 종료된 후, 제2프로세서(31)는 상기 라이트 동작이 종료됨을 제1프로세서(20)에 알리기 위하여 메일 박스 레지스터(MailBox_AB; 52)에 메시지를 라이트하고, 세머포 레지스터(51)의 비트를 0에서 1로 변경한다(S78). 상기 메일 박스 레지스터(MailBox_AB; 52)에 상기 메시지가 라이트되면, 활성화된 인터럽트 신호(INT B)가 제2포트(43)를 통하여 제1프로세서(20)로 전송된다.
제1프로세서(20)는 상기 활성화된 인터럽트 신호(INT B)에 응답하여 상기 메일 박스 레지스터(MailBox_AB; 52)에 라이트된 상기 메시지를 리드한다(S80). 따라서, 제1프로세서(20)는 리드된 메시지에 기초하여 공유 메모리 뱅크(SHB; 44)에 대 한 액세스 권한이 변경됨을 인식한다.
도 1부터 도 7을 참조하여 설명된 실시 예는 라이트 동작을 위주로 설명했으나, 상기 실시 예는 리드 동작에도 적용될 수 있다.
예컨대, 제1프로세서(20)는 리드될 데이터의 크기와 기준 데이터의 크기에 따라 커맨드 패킷을 생성한다. 상기 커맨드 패킷을 도 2에 도시된 커맨드 패킷과 실질적으로 동일하다. 제2프로세서(31)는 상기 커맨드 패킷에 따라 불휘발성 메모리 장치(33)로부터 데이터를 리드하고 리드된 데이터를 반도체 장치(35)의 공유 메모리 뱅크(44)에 라이트한다. 따라서 제1프로세서(20)는 언버퍼드 리드 동작 시에는 공유 메모리 뱅크(44)에 저장된 데이터를 리드하고 버퍼드 리드 동작 시에는 전용 메모리 뱅크들(46와 48) 중에서 어느 하나에 저장된 데이터를 리드할 수 있다.
상기 버퍼드 리드 동작 시에 제1프로세서(20)는 공유 메모리 뱅크(44)에 저장된 데이터를 전용 메모리 뱅크들(46와 48) 중에서 어느 하나로 복사(또는 라이트)할 수 있다.
본 발명은 도면에 도시된 일 실시 예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다.
본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 상세한 설명이 제공된다.
도 1은 본 발명의 실시 예에 따른 데이터 처리 시스템의 블락도를 나타낸다.
도 2는 도 1에 도시된 커맨드 패킷의 일 실시 예를 나타낸다.
도 3은 도 1에 도시된 메모리 장치의 내부 블락도를 나타낸다.
도 4는 도 1에 도시된 제2프로세서의 내부 블락도를 나타낸다.
도 5는 도 1에 도시된 데이터 처리 시스템의 버퍼드 라이트 동작의 타이밍 도를 나타내는 타이밍도이다.
도 6은 도 1에 도시된 데이터 처리 시스템의 버퍼드 라이트 동작의 다른 타이밍 도를 나타내는 타이밍도이다.
도 7은 본 발명의 실시 예에 따른 데이터 처리 시스템의 데이터 처리 방법을 설명하기 위한 플로우차트이다.

Claims (10)

  1. 커맨드 패킷을 수신하여 해석하는 단계; 및
    해석된 커맨드 패킷에 따라, 메모리 장치의 제1메모리 뱅크에 라이트된 제1데이터를 불휘발성 메모리에 라이트거나 또는 상기 제1메모리 뱅크에 라이트된 제2데이터를 상기 메모리 장치의 제2메모리 뱅크로 복사한 후 상기 제2메모리 뱅크로 복사된 상기 제2데이터를 상기 불휘발성 메모리에 라이트하는 단계를 포함하는 데이터 처리 시스템의 데이터 처리 방법.
  2. 제1항에 있어서, 상기 데이터 처리 시스템의 데이터 처리 방법은,
    입력 데이터의 크기와 기준 데이터의 크기의 비교 결과에 따라 상기 커맨드 패킷을 생성하는 단계를 더 포함하는 데이터 처리 시스템의 데이터 처리 방법.
  3. 제1항에 있어서, 상기 제2데이터의 크기는 상기 제1데이터의 크기보다 큰 데이터 처리 시스템의 데이터 처리 방법.
  4. 불휘발성 메모리 장치;
    커맨드 패킷을 수신하여 해석하기 위한 제1프로세서; 및
    메모리 장치를 포함하며,
    상기 제1프로세서는, 해석된 커맨드 패킷에 따라, 상기 메모리 장치의 제1메 모리 뱅크에 라이트된 제1데이터를 상기 불휘발성 메모리 장치에 라이트하거나 또는 상기 제1메모리 뱅크에 라이트된 제2데이터를 상기 메모리 장치의 제2메모리 뱅크로 복사한 후 상기 제2메모리 뱅크로 복사된 상기 제2데이터를 상기 불휘발성 메모리 장치에 라이트하는 데이터 처리 시스템.
  5. 제4항에 있어서, 상기 제1메모리 뱅크에 새로운 데이터가 라이트되는 동안 상기 제1프로세서는 상기 제2메모리 뱅크로 복사된 상기 제2데이터를 상기 불휘발성 메모리 장치에 라이트하는 데이터 처리 시스템.
  6. 제4항에 있어서, 상기 데이터 처리 시스템은,
    입력 데이터의 크기와 기준 데이터의 크기의 비교 결과에 기초하여 상기 커맨드 패킷을 생성하기 위한 제2프로세서를 더 포함하고,
    상기 제2프로세서는 상기 커맨드 패킷이 전송되는 경로와 다른 경로를 통하여 상기 입력 데이터에 상응하는 상기 제1데이터 또는 상기 제2데이터를 상기 제1메모리 뱅크에 라이트하는 데이터 처리 시스템.
  7. 제6항에 있어서,
    상기 제1프로세서가 상기 제2메모리 뱅크로 복사된 상기 제2데이터를 상기 불휘발성 메모리 장치에 라이트하는 동안, 상기 제2프로세서는 새로운 데이터를 상기 제1메모리 뱅크에 라이트하는 데이터 처리 시스템.
  8. 제4항에 있어서, 상기 제2데이터의 크기는 상기 제1데이터의 크기보다 큰 데이터 처리 시스템.
  9. 제6항에 있어서, 상기 제1뱅크는 상기 제1프로세서 또는 상기 제2프로세서에 의하여 액세스될 수 있고, 상기 제2메모리 뱅크는 상기 제2프로세서에 의하여 액세스될 수 있는 데이터 처리 시스템.
  10. 제4항에 있어서, 상기 데이터 처리 시스템은 메모리 카드인 데이터 처리 시스템.
KR1020090077035A 2009-08-20 2009-08-20 데이터 처리 방법 및 데이터 처리 시스템 KR20110019491A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020090077035A KR20110019491A (ko) 2009-08-20 2009-08-20 데이터 처리 방법 및 데이터 처리 시스템
US12/820,452 US20110047320A1 (en) 2009-08-20 2010-06-22 System and method for performing program operation on nonvolatile memory device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020090077035A KR20110019491A (ko) 2009-08-20 2009-08-20 데이터 처리 방법 및 데이터 처리 시스템

Publications (1)

Publication Number Publication Date
KR20110019491A true KR20110019491A (ko) 2011-02-28

Family

ID=43606206

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090077035A KR20110019491A (ko) 2009-08-20 2009-08-20 데이터 처리 방법 및 데이터 처리 시스템

Country Status (2)

Country Link
US (1) US20110047320A1 (ko)
KR (1) KR20110019491A (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101301840B1 (ko) * 2010-12-08 2013-08-29 삼성전자주식회사 비휘발성 메모리 장치의 데이터 처리 방법
KR102156222B1 (ko) * 2013-12-24 2020-09-15 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것을 포함하는 데이터 처리 시스템
KR102398201B1 (ko) 2017-06-30 2022-05-17 삼성전자주식회사 프로세서의 개입 없이 단순 작업을 관리하는 스토리지 장치

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7185145B2 (en) * 2001-06-04 2007-02-27 Renesas Technology Corp. Memory card
US7370082B2 (en) * 2003-05-09 2008-05-06 Microsoft Corporation Remote invalidation of pre-shared RDMA key
US20060064405A1 (en) * 2004-09-21 2006-03-23 Xiaoye Jiang Hybrid client-server protocol for fast writes to a file
KR100758301B1 (ko) * 2006-08-04 2007-09-12 삼성전자주식회사 메모리 카드 및 그것의 데이터 저장 방법
KR20090033539A (ko) * 2007-10-01 2009-04-06 삼성전자주식회사 프로토콜 정의영역을 갖는 멀티포트 반도체 메모리 장치 및그를 채용한 멀티 프로세서 시스템과 멀티포트 반도체메모리 장치의 억세스 방법

Also Published As

Publication number Publication date
US20110047320A1 (en) 2011-02-24

Similar Documents

Publication Publication Date Title
JP7258523B2 (ja) メモリデバイス、メモリシステム及び動作方法
KR102393427B1 (ko) 반도체장치 및 반도체시스템
KR102249416B1 (ko) 메모리 시스템 및 메모리 시스템의 구동 방법
US9304855B2 (en) Data storage device
US10388401B2 (en) Semiconductor device, semiconductor system, and method thereof
KR102647418B1 (ko) 반도체장치 및 반도체시스템
CN106205728B (zh) 奇偶校验电路及包括该奇偶校验电路的存储器装置
CN108091355A (zh) 数据反相电路
US20090235025A1 (en) Memory card capable of reducing power consumption
US20180300061A1 (en) Memory controller and data processing circuit with improved system efficiency
US20170024162A1 (en) Computing system and data transferring method thereof
KR20220059981A (ko) 스토리지 장치 및 스토리지 장치의 동작 방법
US8271697B2 (en) State change in systems having devices coupled in a chained configuration
KR20140123203A (ko) 메모리 시스템
US20240329887A1 (en) Addressing in memory with a read identification (rid) number
US20210200465A1 (en) Direct data transfer in memory and between devices of a memory module
KR20110019491A (ko) 데이터 처리 방법 및 데이터 처리 시스템
WO2019000456A1 (zh) 传输数据掩码的方法、内存控制器、内存芯片和计算机系统
KR102697484B1 (ko) 반도체장치
KR20180055148A (ko) 반도체장치 및 반도체시스템
US8006029B2 (en) DDR flash implementation with direct register access to legacy flash functions
KR20110041613A (ko) Dram 인터페이스와 공유 메모리 영역을 통한 비휘발성 메모리 장치와 자기 기록 매체에 접근할 수 있는 장치
US12073918B2 (en) Memory device deserializer circuit with a reduced form factor
KR20110068386A (ko) 반도체 시스템과 그 동작 방법
US12067276B2 (en) Command bus in memory

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