KR20150127914A - 복수의 프로세서들을 포함하는 반도체 장치 및 그것의 동작 방법 - Google Patents

복수의 프로세서들을 포함하는 반도체 장치 및 그것의 동작 방법 Download PDF

Info

Publication number
KR20150127914A
KR20150127914A KR1020140054205A KR20140054205A KR20150127914A KR 20150127914 A KR20150127914 A KR 20150127914A KR 1020140054205 A KR1020140054205 A KR 1020140054205A KR 20140054205 A KR20140054205 A KR 20140054205A KR 20150127914 A KR20150127914 A KR 20150127914A
Authority
KR
South Korea
Prior art keywords
command
slot number
mailbox
command data
data sets
Prior art date
Application number
KR1020140054205A
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 KR1020140054205A priority Critical patent/KR20150127914A/ko
Priority to US14/515,232 priority patent/US9582341B2/en
Publication of KR20150127914A publication Critical patent/KR20150127914A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication

Landscapes

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

Abstract

본 발명의 실시 예에 따른 반도체 장치는 복수의 커맨드 데이터 셋들을 전송하는 제 1 프로세서, 복수의 커맨드 데이터 셋들을 수신 및 저장하는 메일 박스, 및 메일 박스의 커맨드 데이터 셋들을 수신하는 제 2 프로세서를 포함한다. 제 1 프로세서는 메일 박스에 적어도 하나의 취소 슬롯 넘버를 전송할 수 있다. 이때 메일 박스는 복수의 커맨드 데이터 셋들 중 적어도 하나의 취소 슬롯 넘버와 일치하는 슬롯 넘버를 갖는 커맨드 데이터 셋을 검색 및 취소할 수 있다.

Description

복수의 프로세서들을 포함하는 반도체 장치 및 그것의 동작 방법{SEMICONDUCTOR DEVICE INCLUDING PLURALITY OF PROCESSORS AND OPERATING METHOD THEREOF}
본 발명은 전자 장치에 관한 것으로, 좀 더 구체적으로는 복수의 프로세서들을 포함하는 반도체 장치 및 그것의 동작 방법에 관한 것이다.
최근 휴대용 멀티미디어 플레이어(PMP), 모바일 폰, 스마트 폰, GPS 내비게이션 장치, 디지털 카메라, 디지털 비디오 카메라 또는 PDA 등의 휴대용 전자기기에서는, 여러 기능을 원활히 수행하고 각 기능을 고속으로 수행하기 위하여 하나의 시스템 내 복수의 프로세서들을 채용한 멀티 프로세서 시스템이 선호된다. 각 프로세서는 시스템 내 적어도 하나의 기능 블록을 제어할 수 있으므로, 시스템 내 기능 블록들은 두 개 이상의 프로세서들의 제어에 따라 보다 효율적으로 동작할 수 있다.
예를 들어, 모바일 폰에는 기본적인 통화 기능 외에 음악 재생 기능, 동영상 재생 기능, 무선 인터넷과의 통신 기능, 결제 기능, 게임 기능, 카메라 기능 등이 추가적으로 구현될 수 있다. 따라서, 그러한 경우에 통신 변 복조 기능을 수행하기 위한 통신 프로세서와, 통신 기능을 제외한 기능들을 수행하기 위한 프로세서가 모바일 폰 내의 함께 채용될 필요성이 있다.
더 나아가, 위 시스템 내 저장 매체를 위한 컨트롤러에 있어서도 복수의 프로세서들이 채용될 수 있다. 마찬가지로 이러한 복수의 프로세서들이 채용됨으로써, 컨트롤러의 고속화를 가능하게 한다.
본 발명의 실시 예는 복수의 프로세서들을 포함하는 반도체 장치의 신뢰성을 개선하고, 더불어 동작 속도를 향상시키기 위한 것이다.
본 발명의 실시 예에 따른 반도체 장치는 복수의 커맨드 데이터 셋들을 전송하되, 상기 복수의 커맨드 데이터 셋들 각각은 커맨드 및 상기 커맨드에 대응하는 슬롯 넘버를 포함하는 제 1 프로세서; 상기 복수의 커맨드 데이터 셋들을 수신하되, 상기 제 1 프로세서의 제어에 따라 상기 복수의 커맨드 데이터 셋들 중 일부를 취소(abort)하는 메일 박스; 및 상기 메일 박스의 커맨드 데이터 셋들을 수신하는 제 2 프로세서를 포함한다. 상기 제 1 프로세서는 상기 취소 시에 상기 메일 박스에 적어도 하나의 취소 슬롯 넘버를 전송한다. 상기 메일 박스는 상기 복수의 커맨드 데이터 셋들 중 상기 적어도 하나의 취소 슬롯 넘버와 일치하는 슬롯 넘버를 갖는 커맨드 데이터 셋을 검색 및 취소한다.
실시 예로서, 상기 복수의 커맨드 데이터 셋들 각각에 포함된 슬롯 넘버는 미리 정해진 복수의 슬롯 넘버들 중 하나이다. 이때, 상기 제 1 프로세서는 상기 미리 정해진 복수의 슬롯 넘버들에 각각 대응하는 데이터 비트들을 포함하는 취소 비트 맵을 상기 메일 박스에 제공하여 상기 적어도 하나의 취소 슬롯 넘버를 전송할 수 있다.
실시 예로서, 상기 취소 비트맵의 상기 데이터 비트들 중 상기 적어도 하나의 취소 슬롯 넘버에 대응하는 데이터 비트는 선택 값을 갖고, 나머지 데이터 비트들은 비선택 값을 가질 수 있다.
실시 예로서, 상기 메일 박스는 상기 취소 비트 맵의 상기 데이터 비트들 중 상기 선택 값의 데이터 비트에 대응하는 슬롯 넘버를 갖는 커맨드 데이터 셋을 검색 및 취소할 수 있다.
실시 예로서, 상기 제 1 프로세서는 상기 메일 박스에 커맨드 락 신호를 전송하고, 그 후에 상기 적어도 하나의 취소 슬롯 넘버를 전송할 수 있다.
실시 예로서, 상기 메일 박스는 상기 복수의 커맨드 데이터 셋들을 저장하는 커맨드 큐 레지스터를 포함하되, 상기 커맨드 락 신호에 응답하여 상기 커맨드 큐 레지스터에 대한 입출력을 차단할 수 있다.
실시 예로서, 상기 메일 박스는 상기 검색 및 취소가 완료된 후에 상기 커맨드 큐 레지스터에 대한 입출력을 허용할 수 있다.
실시 예로서, 상기 메일 박스는 상기 복수의 커맨드 데이터 셋들을 저장하는 커맨드 큐 레지스터 및 커맨드 관리 레지스터를 포함하되, 상기 적어도 하나의 취소 슬롯 넘버 중 상기 복수의 커맨드 데이터 셋들의 슬롯 넘버들에는 존재하지 않는 페일 슬롯 넘버를 상기 커맨드 관리 레지스터에 저장할 수 있다.
실시 예로서, 상기 복수의 커맨드 데이터 셋들 각각에 포함된 슬롯 넘버는 미리 정해진 복수의 슬롯 넘버들 중 하나이고, 상기 메일 박스는 상기 미리 정해진 복수의 슬롯 넘버들에 각각 대응하는 데이터 비트들을 포함하는 페일 비트맵을 상기 커맨드 관리 레지스터에 저장할 수 있다. 상기 페일 비트 맵에 따라 상기 페일 슬롯 넘버가 특정될 것이다.
실시 예로서, 상기 페일 비트맵의 상기 데이터 비트들 중 상기 페일 슬롯 넘버에 대응하는 데이터 비트는 선택 값을 갖고, 나머지 데이터 비트들은 비선택 값을 가질 수 있다.
실시 예로서, 상기 제 2 프로세서는 상기 메일 박스로부터 수신된 커맨드 데이터 셋들을 임시 저장하되, 상기 커맨드 관리 레지스터를 조회하여 상기 임시 저장된 커맨드 데이터 셋들의 슬롯 넘버들이 상기 페일 슬롯 넘버와 일치하는지 판별할 수 있다.
실시 예로서, 상기 제 2 프로세서는 상기 임시 저장된 커맨드 데이터 셋들 중 상기 페일 슬롯 넘버와 일치하는 슬롯 넘버를 갖는 커맨드 데이터 셋을 취소하고, 나머지 커맨드 데이터 셋들의 커맨드들을 실행할 수 있다.
본 발명의 다른 일면은 복수의 프로세서들을 포함하는 반도체 장치의 동작 방법에 관한 것이다. 상기 동작 방법은 상기 복수의 프로세서들 중 제 1 프로세서에서 생성된 복수의 커맨드 데이터 셋들을 메일 박스에 저장하되, 상기 복수의 커맨드 데이터 셋들 각각은 커맨드 및 상기 커맨드에 대응하는 슬롯 넘버를 포함하는 단계; 상기 제 1 프로세서에서 상기 메일 박스로 적어도 하나의 취소 슬롯 넘버를 전송하는 단계; 상기 메일 박스에 저장된 상기 복수의 커맨드 데이터 셋들 중 상기 적어도 하나의 취소 슬롯 넘버와 일치하는 슬롯 넘버를 갖는 커맨드 데이터 셋을 취소(abort)하는 단계; 및 상기 메일 박스에 저장된 커맨드 데이터 셋들을 상기 복수의 프로세서들 중 제 2 프로세서로 전송하는 단계를 포함한다.
실시 예로서, 상기 복수의 커맨드 데이터 셋들 각각에 포함된 슬롯 넘버는 미리 정해진 복수의 슬롯 넘버들 중 하나이며, 상기 적어도 하나의 취소 슬롯 넘버를 전송하는 단계는 상기 미리 정해진 복수의 슬롯 넘버들에 각각 대응하는 데이터 비트들을 포함하는 취소 비트 맵을 상기 메일 박스에 제공함으로써 상기 적어도 하나의 취소 슬롯 넘버를 전송하는 단계를 포함할 수 있다.
실시 예로서, 상기 취소 비트맵의 상기 데이터 비트들 중 상기 적어도 하나의 취소 슬롯 넘버에 대응하는 데이터 비트는 선택 값을 갖고, 나머지 데이터 비트들은 비선택 값을 가질 수 있다.
실시 예로서, 상기 취소하는 단계는 상기 취소 비트맵의 상기 데이터 비트들 중 상기 선택 값의 데이터 비트에 대응하는 슬롯 넘버를 갖는 커맨드 데이터 셋을 취소하는 단계를 포함할 수 있다.
실시 예로서, 상기 동작 방법은 상기 적어도 하나의 취소 슬롯 넘버 중 상기 복수의 커맨드 데이터 셋들의 슬롯 넘버들에는 존재하지 않는 페일 슬롯 넘버를 상기 메일 박스에 저장하는 단계를 더 포함할 수 있다.
실시 예로서, 상기 동작 방법은 상기 메일 박스로부터 상기 제 2 프로세서로 전송된 커맨드 데이터 셋들을 임시 저장하는 단계; 및 상기 메일 박스의 상기 페일 슬롯 넘버를 조회하여 상기 임시 저장된 커맨드 데이터 셋들의 슬롯 넘버들이 상기 페일 슬롯 넘버와 일치하는지 여부를 판별하는 단계를 더 포함할 수 있다.
실시 예로서, 상기 임시 저장된 커맨드 데이터 셋들 중 상기 페일 슬롯 넘버와 일치하는 슬롯 넘버를 갖는 커맨드 데이터 셋은 취소되고, 상기 제 2 프로세서는 나머지 커맨드 데이터 셋들의 커맨드들을 실행할 수 있다.
본 발명의 실시 예에 따르면 복수의 프로세서들을 포함하는 반도체 장치의 신뢰성이 개선되고, 더불어 동작 속도가 향상된다.
도 1은 본 발명의 실시 예에 따른 반도체 장치를 보여주는 블록도이다.
도 2는 도 1의 메일 박스를 좀 더 구체적으로 보여주는 블록도이다.
도 3은 도 2의 커맨드 큐 레지스터들 중 어느 하나에 저장된 커맨드 데이터 셋들을 보여주는 개념도이다.
도 4는 도 2의 커맨드 관리 레지스터에 저장된 취소 비트맵을 보여주는 개념도이다.
도 5는 본 발명의 실시 예에 따른 메일 박스의 동작 방법을 보여주는 흐름도이다.
도 6 및 도 7은 메일 박스에 저장된 커맨드 데이터 셋들 중 일부가 취소되는 과정을 설명하기 위한 도면들이다.
도 8은 본 발명의 다른 실시 예에 따른 메일 박스를 보여주는 블록도이다.
도 9은 본 발명의 다른 실시 예에 따른 메일 박스의 동작 방법을 보여주는 흐름도이다.
도 10 및 도 11은 메일 박스에 저장된 커맨드 데이터 셋들 중 일부가 취소되는 과정을 설명하기 위한 도면들이다.
도 12는 제 2 프로세서의 동작 방법을 보여주는 흐름도이다.
이하, 본 발명에 따른 바람직한 실시 예를 첨부한 도면을 참조하여 상세히 설명한다. 하기의 설명에서는 본 발명에 따른 동작을 이해하는데 필요한 부분만이 설명되며 그 이외 부분의 설명은 본 발명의 요지를 모호하지 않도록 하기 위해 생략될 것이라는 것을 유의하여야 한다. 또한 본 발명은 여기에서 설명되는 실시 예에 한정되지 않고 다른 형태로 구체화될 수도 있다. 단지, 여기에서 설명되는 실시 예은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 본 발명의 기술적 사상을 용이하게 실시할 수 있을 정도로 상세히 설명하기 위하여 제공되는 것이다.
도 1은 본 발명의 실시 예에 따른 반도체 장치(100)를 보여주는 블록도이다.
도 1을 참조하면, 반도체 장치(100)는 복수의 기능 블록 그룹들(110, 120), 버스(130), 제 1 및 제 2 프로세서들(140, 150), 및 메일 박스(160)를 포함한다.
제 1 및 제 2 기능 블록 그룹들(110, 120)은 버스(130)에 연결된다. 각 기능 블록 그룹은 적어도 하나의 기능 블록을 포함한다. 제 1 기능 블록 그룹(110)은 제 1 기능 블록(111)을 포함한다. 제 2 기능 블록 그룹(120)은 제 2 기능 블록(113)을 포함한다. 각 기능 블록은 특정 기능을 수행하도록 구성된다.
실시 예로서, 제 1 및 제 2 기능 블록들(111, 112) 각각은 버스(130)와 통신하는 인터페이스(미도시)를 포함할 수 있다. 제 1 및 제 2 기능 블록들(111, 112) 각각은 해당 인터페이스를 이용하여 버스(130)와 통신할 수 있다.
도 1에서, 반도체 장치(100)는 2개의 기능 블록들(111, 112)을 포함하는 것으로 도시된다. 그러나, 이는 예시적인 것으로서 각 기능 블록 그룹이 2 이상의 기능 블록들을 포함하여 반도체 장치(100)는 더 많은 기능 블록들을 포함할 수 있음이 이해될 것이다.
제 1 기능 블록 그룹(110)에 포함된 기능 블록(110)은 버스(130)를 통한 제 1 프로세서(140)의 제어에 따라 동작한다. 예를 들면, 제 1 기능 블록(110)이 외부의 호스트(미도시)와 반도체 장치(100)를 인터페이싱하는 기능을 수행할 때, 제 1 기능 블록(110)은 제 1 프로세서(140)의 제어에 응답하여 외부의 호스트로부터 리퀘스트(예를 들면, 쓰기 리퀘스트 또는 읽기 리퀘스트 등)를 수신할 수 있다. 그리고 제 1 기능 블록(110)은 제 1 프로세서(140)의 제어에 응답하여 그에 대한 응답을 외부의 호스트에 전송할 수 있다.
제 2 기능 블록 그룹(120)에 포함된 기능 블록(112)은 버스(130)를 통한 제 2 프로세서(150)의 제어에 따라 동작한다. 예를 들면, 제 2 기능 블록(110)은 불휘발성 메모리 장치(미도시)와 반도체 장치(100)를 인터페이싱하되, 제 2 프로세서(150)의 제어에 응답하여 불휘발성 메모리 장치에 데이터를 쓰고 불휘발성 메모리 장치로부터 데이터를 읽을 수 있다.
제 1 및 제 2 프로세서들(140, 150)은 메일 박스(160)를 통해 통신한다. 제 1 프로세서(140)는 버스(130)에 전기적으로 연결된다. 제 1 프로세서(140)는 버스(130)를 통해 제 1 기능 블록 그룹(110)의 기능 블록(111)을 제어한다. 제 1 프로세서(140)는 버스(130)를 통해 메일 박스(160)와 통신할 수 있다. 제 2 프로세서(150)는 버스(130)에 연결된다. 제 2 프로세서(150)는 버스(130)를 통해 제 2 기능 블록 그룹(120)의 기능 블록(112)을 제어한다. 제 2 프로세서(150)는 버스(130)를 통해 메일 박스(160)와 통신할 수 있다.
실시 예로서, 제 1 및 제 2 프로세서들(14, 150) 각각은 펌웨어를 저장하는 별도의 메모리(미도시)에 연결되고, 해당 메모리에 저장된 펌웨어에 따라 동작할 수 있다.
본 발명의 실시 예에 따르면, 제 1 및 제 2 프로세서들(140, 150)은 메일 박스(160)를 통해 통신한다. 제 1 프로세서(140)는 제 2 프로세서(150)가 처리할 커맨드를 전송할 때 커맨드를 포함하는 커맨드 데이터 셋을 생성하고, 생성된 커맨드 데이터 셋을 메일 박스(160)에 전송한다. 메일 박스(160)에 제공된 커맨드 데이터 셋은 제 2 프로세서(150)에 제공될 것이다.
이때, 각 커맨드 데이터 셋은 커맨드 및 슬롯 넘버(slot number)를 포함한다. 예를 들면, 외부의 호스트(미도시)로부터 제 1 기능 블록(111)을 통해 수신된 리퀘스트에 따라, 제 1 프로세서(140)는 제 2 프로세서(150)에 전송될 커맨드를 생성하고, 생성된 커맨드에 특정 슬롯 넘버를 부여할 것이다. 슬롯 넘버는 미리 정해진 복수의 슬롯 넘버들 중 하나이다. 즉, 제 1 프로세서(140)는 복수의 슬롯 넘버들 중 하나를 선택하고, 선택된 슬롯 넘버를 커맨드에 부여한다. 그리고, 제 1 프로세서(140)는 커맨드 및 해당 슬롯 넘버를 포함하는 커맨드 데이터 셋을 생성한다.
마찬가지로, 제 2 프로세서(150)는 제 1 프로세서(140)가 처리할 커맨드를 전송할 때 커맨드를 포함하는 커맨드 데이터 셋을 메일 박스(160)에 전송한다. 제 2 프로세서(150)로부터 메일 박스(160)에 제공된 커맨드 데이터 셋은 제 1 프로세서(140)에 전송된다.
메일 박스(160)는 레지스터 그룹(220)을 포함한다. 레지스터 그룹(220)에는 제 1 및 제 2 커맨드 큐 레지스터들(CQ1, CQ2), 그리고 커맨드 관리 레지스터(CMR)가 포함된다.
제 1 프로세서(140)로부터 수신된 커맨드 데이터 셋들은 순차적으로 제 1 커맨드 큐 레지스터(CQ1)에 저장된다. 제 1 커맨드 큐 레지스터(CQ1)에 저장된 커맨드 데이터 셋들은 순차적으로 제 2 프로세서(150)에 출력된다. 제 2 프로세서(150)로부터 수신된 커맨드 데이터 셋들은 순차적으로 제 2 커맨드 큐 레지스터(CQ2)에 저장된다. 제 2 커맨드 큐 레지스터(CQ2)에 저장된 커맨드 데이터 셋들은 순차적으로 제 1 프로세서(140)에 출력된다.
제 1 및 제 2 커맨드 큐 레지스터들(CQ1, CQ2) 각각은 선입 선출(First In First Out) 방식에 따라 커맨드 데이터 셋들을 저장 및 출력한다.
메일 박스(160)는 제 1 및 제 2 커맨드 큐 레지스터들(CQ1, CQ2) 중 하나에 대응하는 커맨드 관리 레지스터(CMR)를 더 포함한다.
이하, 설명의 편의를 위해 제 1 프로세서(140)로부터의 커맨드 데이터 셋들이 메일 박스(160)를 통해 제 2 프로세서(150)로 전송되는 경우를 중심으로 본 발명의 기술적 사상이 설명된다. 그리고, 커맨드 관리 레지스터(CMR)는 제 1 커맨드 큐 레지스터(CQ1)에 대응한다고 가정한다. 그러나, 이는 예시적인 것으로서 메일 박스(160) 내에 제 2 커맨드 큐 레지스터(CQ2)에 대응하는 추가적인 커맨드 관리 레지스터가 더 제공될 수 있음이 이해될 것이다.
본 발명의 실시 예에 따르면, 커맨드 관리 레지스터(CMR)는 제 1 프로세서(140)로부터 전송된 취소 슬롯 넘버들을 저장한다. 제 1 프로세서(140)는 메일 박스(160)에 이미 전송된 커맨드 데이터 셋들(즉 CQ1에 저장된 커맨드 데이터 셋들) 중 일부를 취소(abort)하기 위한 취소 슬롯 넘버들을 메일 박스(160)에 전송할 수 있다.
메일 박스(160)는 커맨드 관리 레지스터(CMR)에 저장된 취소 슬롯 넘버들에 따라 제 1 커맨드 큐 레지스터(CQ1)에 저장된 커맨드 데이터 셋들 중 일부를 취소(abort)할 수 있다. 제 1 커맨드 큐 레지스터(CQ1)에 저장된 커맨드 데이터 셋들 중 취소 슬롯 넘버들과 일치하는 슬롯 넘버를 갖는 커맨드 데이터 셋은 취소될 것이다.
이에 따라, 제 1 프로세서(140)는 이미 메일 박스(160)에 전송된 커맨드 데이터 셋들 중 전부 또는 일부를 취소할 수 있다. 결과적으로, 제 2 프로세서(150)가 수행할 필요 없는 커맨드는 메일 박스(160) 내에서 취소되고, 따라서 제 2 프로세서(150)에 의해 실행되지 않을 것이다. 불필요한 커맨드가 실행되지 않음에 따라, 반도체 장치(100)의 신뢰성이 향상되고, 반도체 장치(100)의 동작 속도가 개선될 것이다.
도 2는 도 1의 메일 박스(130)를 좀 더 구체적으로 보여주는 블록도이다. 도 3은 도 2의 커맨드 큐 레지스터들(CQ1, CQ2) 중 어느 하나(CQ1)에 저장된 커맨드 데이터 셋들(CDS1~CDSn)을 보여주는 개념도이다. 도 4는 도 2의 커맨드 관리 레지스터(CMR)에 저장된 취소 비트맵을 보여주는 개념도이다.
도 1 및 도 2를 참조하면, 메일 박스(130)는 입출력부(210), 레지스터 그룹(220), 제어부(230) 및 메일 박스 설정부(240)을 포함한다.
입출력부(210)는 버스(130)에 연결된다. 입출력부(210)는 제어부(230)의 제어에 응답하여 동작한다. 입출력부(210)는 제 1 및 제 2 프로세서들(140, 150)로부터 커맨드 데이터 셋들을 수신한다. 입출력부(210)는 제 1 프로세서(140)로부터 수신된 커맨드 데이터 셋들을 제 1 커맨드 큐 레지스터(CQ1)에 저장할 것이다. 입출력부(210)는 제 2 프로세서(150)로부터 수신된 커맨드 데이터 셋들을 제 2 커맨드 큐 레지스터(CQ2)에 저장할 것이다.
입출력부(210)는 제 1 및 제 2 프로세서들(140, 150)로 커맨드 데이터 셋들을 출력한다. 입출력부(210)는 제 1 커맨드 큐 레지스터(CQ1)에 저장된 커맨드 데이터 셋들을 제 2 프로세서(150)로 출력할 것이다. 입출력부(210)는 제 2 커맨드 큐 레지스터(CQ2)에 저장된 커맨드 데이터 셋들을 제 1 프로세서(140)로 출력할 것이다.
도 3을 참조하면, 커맨드 큐 레지스터(CQ1)는 제 1 내지 제 n 커맨드 데이터 셋들(CDS1~CDSn)을 저장한다. 제 1 내지 제 n 커맨드 데이터 셋들(CDS1~CDSn)은 선입 선출 방식에 따라 커맨드 큐 레지스터(CQ1)에 입력 및 출력된다.
각 커맨드 데이터 셋은 커맨드(CMD) 및 슬롯 넘버(SLTN)를 포함한다. 예를 들면, 슬롯 넘버(SLTN)는 커맨드 데이터 셋의 제 0 내지 제 4 비트들에 의해 나타나는 값이고, 커맨드(CMD)는 커맨드 데이터 셋의 나머지 비트들에 의해 나타나는 값일 수 있다.
슬롯 넘버(SLTN)는 미리 정해진 복수의 슬롯 넘버들 중 하나로서, 제 1 프로세서(140)에 의해 결정된다. 슬롯 넘버(SLTN)는 특정 값을 가질 것이다.
슬롯 넘버(SLTN)는, 예를 들면 커맨드(CMD)에 대응하는 식별자(identifier)일 수 있다. 실시 예로서, 제 2 프로세서(150)가 커맨드 데이터 셋을 수신할 때, 제 2 프로세서(150)는 커맨드(CMD)를 추출 및 실행할 수 있다. 예를 들면, 제 2 프로세서(150)는 커맨드(CMD)에 대응하는 특정 동작을 실행하도록 제 2 기능 블록(112)을 제어할 것이다. 이후, 제 2 프로세서(150)는 커맨드(CMD)의 실행이 완료되었음을 나타내는 완료 정보와 함께 슬롯 넘버(SLTN)를, 예를 들면 메일 박스(160)를 통해 제 1 프로세서(140)로 전송할 것이다. 수신된 완료 정보 및 슬롯 넘버(SLTN)에 따라, 제 1 프로세서(140)는 커맨드(CMD)의 실행이 완료되었음을 인지할 것이다. 이와 같이 제 1 및 제 2 프로세서들(140, 150)은 슬롯 넘버(SLTN)를 이용하여 커맨드(CMD)와 관련된 제반 동작을 효율적으로 수행할 수 있다.
다시 도 2를 참조하면, 입출력부(210)는 제 1 프로세서(140)로부터 취소 슬롯 넘버들을 수신할 수 있다. 입출력부(210)는 수신된 취소 슬롯 넘버들을 커맨드 관리 레지스터(CMR)에 저장한다.
본 발명의 실시 예에 따르면, 제 1 프로세서(140)는 비트맵(bitmap)의 형태로 취소 슬롯 넘버들을 제공할 수 있다. 제 1 프로세서(140)는 미리 정해진 복수의 슬롯 넘버들에 각각 대응하는 데이터 비트들을 포함하는 취소 비트맵을 메일 박스(240)에 전송할 수 있다. 전송된 취소 비트맵은 커맨드 관리 레지스터(CMR)에 저장된다.
도 4를 참조하면, 취소 비트맵은 복수의 데이터 비트들(B0~B31)로 구성된다. 각 데이터 비트는 하나의 슬롯 넘버에 대응한다. 예를 들면, 미리 정해진 복수의 슬롯 넘버들이 '0h~31h'이고 따라서 미리 정해진 슬롯 넘버들의 개수가 32이라고 가정한다. 이때 취소 비트 맵은 32개의 데이터 비트들(B0~B31)로 구성될 수 있다. 제 0 내지 제 31 데이터 비트들(B0~B31)은 각각 슬롯 넘버 '0h'~'31h'에 대응할 것이다. 각 데이터 비트는 선택값(예를 들면 논리값 '1') 또는 비선택값(예를 들면 논리값 '0')을 가질 수 있다. 취소 비트맵 내 선택값을 갖는 데이터 비트들에 따라 취소 슬롯 넘버들이 특정될 수 있다.
다시 도 2를 참조하면, 제어부(230)는 입출력부(210), 레지스터 그룹(220) 및 메일 박스 설정부(240)와 연결된다. 제어부(230)는 메일 박스(130)의 제반 동작을 제어하도록 구성된다.
제어부(230)는 커맨드 관리 레지스터(CMR)를 조회하고, 제 1 커맨드 큐 레지스터(CQ1)에 저장된 커맨드 데이터 셋들(CDS1~CDS4) 중 취소 슬롯 넘버들과 일치하는 슬롯 넘버를 갖는 커맨드 데이터 셋을 검색 및 취소하도록 구성된다.
취소 슬롯 넘버들이 취소 비트맵으로서 커맨드 관리 레지스터(CMR)에 저장된 경우에, 제어부(230)는 취소 비트맵에 근거하여 제 1 커맨드 큐 레지스터(CQ1)에 저장된 커맨드 데이터 셋들 중 전부 또는 일부를 취소할 것이다. 예를 들면, 취소 비트 맵의 제 2 데이터 비트(B2)가 선택값을 가질 때, 제어부(230)는 슬롯 넘버 '2h'를 갖는 커맨드 데이터 셋을 검색하고, 검색된 커맨드 데이터 셋을 삭제할 것이다.
실시 예로서, 제 1 프로세서(140)는 취소 비트맵을 전송하기 전에 커맨드 락(lock) 신호를 메일 박스(130)에 전송할 수 있다. 제어부(230)는 입출력부(210)를 통해 수신된 커맨드 락 신호에 응답하여 메일 박스 설정부(240)의 락 레지스터(LCKR)에 저장된 데이터 비트를 변경할 수 있다. 제 2 프로세서(150)는 락 레지스터(LCKR)를 조회한 후에, 조회 결과에 따라 레지스터 그룹(220)에 접근하도록 구성될 수 있다. 락 레지스터(LCKR)에 저장된 데이터 비트가 변경된 경우에, 제 2 프로세서(150)는 제 1 커맨드 큐 레지스터(CQ1)로부터 커맨드 데이터 셋을 수신할 수 없다.
실시 예로서, 제어부(230)는 위 취소 동작 동안 취소 상태 레지스터(ASR)에 저장된 데이터 비트를 변경할 수 있다. 취소 상태 레지스터(ASR)에 저장된 데이터 비트가 인에이블될 때, 프로세서들(140, 150)은 레지스터 그룹(220)에 접근할 수 없다.
본 발명의 실시 예에 따르면, 제 1 프로세서(140)는 비트맵의 형태로 취소 슬롯 넘버들을 메일 박스(160)에 전송할 수 있다. 제 1 프로세서(140)는 취소 슬롯 넘버들 각각에 대한 정보를 개별적으로 메일 박스(160)에 전송할 필요 없이, 취소 비트맵을 메일 박스(160)로 전송함으로써 한번에 복수의 취소 슬롯 넘버들을 전송할 수 있다. 따라서, 취소 동작의 속도는 향상된다.
이하, 설명의 편의를 위해 취소 비트맵을 제공하는 방식으로 취소 슬롯 넘버들이 메일 박스(160)에 제공된다고 가정한다.
도 5는 본 발명의 실시 예에 따른 메일 박스(160)의 동작 방법을 보여주는 흐름도이다.
도 1, 도 2 및 도 5를 참조하면, S100단계에서, 메일 박스(160)는 제 1 프로세서(140)로부터 커맨드 데이터 셋들을 수신한다. 이후 S110단계에서, 메일 박스(160)는 제 1 프로세서(140)로부터 커맨드 락 신호를 수신한다. S120단계에서, 메일 박스(160)는 커맨드 락 신호에 응답하여 레지스터 그룹(220)을 락 시킨다. 예를 들면 메일 박스(160)는 메일 박스 설정부(240)의 락 레지스터(LCKR)의 데이터 비트를 '1'로 변경할 것이다. 또한, 메일 박스(160)는 메일 박스 설정부(240)의 취소 상태 레지스터(ASR)의 데이터 비트 '1'로 변경할 수 있다.
S130단계에서, 메일 박스(160)는 제 1 프로세서(140)로부터 취소 비트맵을 수신한다. 제 1 프로세서(140)는 커맨드 락 신호를 전송한 후에 취소 비트맵을 전송한다. 취소 비트맵에 의해 취소 슬롯 넘버들이 특정된다.
S140단계에서, 메일 박스(160)는 커맨드 큐 레지스터(CQ1)의 커맨드 데이터 셋들 중 취소 슬롯 넘버들과 일치하는 슬롯 넘버를 갖는 커맨드 데이터 셋이 존재하는지 여부를 판별한다. 메일 박스(160)는 커맨드 큐 레지스터(CQ1) 내 슬롯 넘버들을 취소 슬롯 넘버들과 비교할 것이다. 비교 결과, 만약 취소 슬롯 넘버들과 일치하는 슬롯 넘버가 커맨드 큐 레지스터(CQ1) 내에서 검색된다면, S150단계가 수행된다. 만약 그렇지 않다면, S160단계가 수행된다.
S150단계에서, 메일 박스(160)는 검색된 슬롯 넘버에 대응하는 커맨드 데이터 셋을 취소한다. 예를 들면, 메일 박스(160)는 검색된 슬롯 넘버에 대응하는 커맨드 데이터 셋을 디폴트 값으로 변경할 것이다.
S160단계에서, 메일 박스(160)는 커맨드 큐 레지스터(CQ1)를 언락(unlock)한다. 예를 들면, 메일 박스(160)는 메일 박스 설정부(240)의 락 레지스터(LCKR)의 데이터 비트를 '0'으로 초기화한다. 또한, 메일 박스(160)는 메일 박스 설정부(240)의 취소 상태 레지스터(ASR)의 데이터 비트 '0'으로 초기화할 수 있다.
이후, 제 2 프로세서(150)는 커맨드 큐 레지스터(CQ1)에 접근할 것이다. 제 2 프로세서(150)는 커맨드 큐 레지스터(CQ1)에 남겨진 커맨드 데이터 셋들을 수신할 수 있다. 예를 들면, 제 2 프로세서(150)가 디폴트 값을 수신할 때, 제 2 프로세서(150)는 해당 값을 무시할 것이다.
도 6 및 도 7은 메일 박스(160)에 저장된 커맨드 데이터 셋들(CDS1~CDSn) 중 일부가 취소되는 과정을 설명하기 위한 도면들이다.
먼저 도 6을 참조하면, 메일 박스(160)에 취소 비트맵이 수신된다. 취소 비트맵에서, 제 2, 제 3 및 제 28 데이터 비트들은 선택 값을 갖는다. 나머지 데이터 비트들은 비선택 값을 갖는다. 이러한 취소 비트맵에 따라, '2h', '3h' 및 '28h'는 취소 슬롯 넘버들로 특정된다.
이렇듯, 미리 정해진 슬롯 넘버들에 각각 대응하는 데이터 비트들이 선택 값 또는 비선택 값으로 설정된 취소 비트 맵을 제공함으로써, 복수의 취소 슬롯 넘버들이 빠르게 메일 박스(160)에 제공될 수 있다.
메일 박스(160)는 커맨드 큐 레지스터(CQ1) 내에서 취소 슬롯 넘버들과 일치하는 슬롯 넘버(SLTN)를 검출한다.
제 4 커맨드 데이터 셋(CDS4)의 슬롯 넘버 '3h', 제 6 커맨드 데이터 셋(CDS6)의 슬롯 넘버 '2h', 그리고 제 m 커맨드 데이터 셋(CDSm)의 슬롯 넘버 '28h'가 취소 슬롯 넘버들과 일치한다.
도 7을 참조하면, 취소 슬롯 넘버들과 일치하는 슬롯 넘버를 갖는 커맨드 데이터 셋은 취소된다. 제 4 커맨드 데이터 셋(CDS4), 제 6 커맨드 데이터 셋(CDS6) 및 제 m 커맨드 데이터 셋(CDSm) 각각은 해당 슬롯 넘버와 함께 디폴트 값으로 변경된다.
이후 제 2 프로세서(150, 도 1 참조)는 레지스터 그룹(220)이 언락될 때 커맨드 큐 레지스터(CQ1)에 접근할 것이다. 제 2 프로세서(150)는 커맨드 큐 레지스터(CQ1)에 남아있는 커맨드 데이터 셋들을 수신할 것이다. 제 4 커맨드 데이터 셋(CDS4), 제 6 커맨드 데이터 셋(CDS6) 및 제 m 커맨드 데이터 셋(CDSm)은 디폴트 값을 가지므로 제 2 프로세서(150)에 의해 실행되지 않을 것이다.
도 8은 본 발명의 다른 실시 예에 따른 메일 박스(300)를 보여주는 블록도이다.
도 8을 참조하면, 메일 박스(300)는 입출력부(310), 레지스터 그룹(320), 제어부(330) 및 메일 박스 설정부(340)를 포함한다.
레지스터 그룹(320)은 제 1 및 제 2 커맨드 큐 레지스터들(CQ1, CQ2), 제 1 커맨드 관리 레지스터(CMR1), 그리고 제 2 커맨드 관리 레지스터(CMR2)를 포함한다.
제 1 커맨드 관리 레지스터(CMR1)는 도 2를 참조하여 설명된 커맨드 관리 레지스터(CMR)와 마찬가지로 취소 비트맵을 저장한다. 이하, 중복되는 설명은 생략된다.
제 2 커맨드 관리 레지스터(CMR2)는 페일 비트맵을 저장한다. 페일 비트맵은 취소 비트맵에 따라 커맨드 데이터 셋들(CDS1~CDSn) 중 일부가 취소되는 과정에서 제어부(330)에 의해 생성된다.
제 2 프로세서(150, 도 1 참조)는 제 2 커맨드 관리 레지스터(CMR2)를 조회하여, 페일 비트맵을 제공받을 수 있다. 페일 비트맵에 따라, 제 2 프로세서(150)는 취소 동작 전 이미 그것에 수신되었던 커맨드 데이터 셋들 중 전부 또는 일부를 취소할 수 있다.
이에 따라, 취소 동작 전 이미 커맨드 데이터 셋들이 메일 박스(300)를 통해 제 2 프로세서(150)로 전달되었다고 하더라도, 이미 전달된 커맨드 데이터 셋들은 취소될 수 있다. 따라서 반도체 장치(100)의 신뢰성이 개선될 수 있다.
도 9은 본 발명의 다른 실시 예에 따른 메일 박스(300)의 동작 방법을 보여주는 흐름도이다.
S200단계에서, S100단계에서, 메일 박스(300)는 제 1 프로세서(140)로부터 커맨드 데이터 셋들을 수신한다. 이후 S210단계에서, 제 1 프로세서(140)로부터 커맨드 락 신호가 수신된다. S220단계에서, 메일 박스(300)는 커맨드 락 신호에 응답하여 커맨드 큐 레지스터(CQ1)를 락 시킨다. 예를 들면 메일 박스(300)는 메일 박스 설정부(340)의 락 레지스터(LCKR)의 데이터 비트를 '1'로 변경한다.
S230단계에서, 메일 박스(300)는 제 1 프로세서(140)로부터 취소 비트맵을 수신한다.
S240단계에서, 커맨드 큐 레지스터(CQ1)의 커맨드 데이터 셋들 중 취소 슬롯 넘버들과 일치하는 슬롯 넘버를 갖는 커맨드 데이터 셋이 존재하는지 판별된다. 만약 그렇다면, S250단계가 수행된다. 만약 그렇지 않다면 S260단계가 수행된다.
S250단계에서, 메일 박스(300)는 검색된 슬롯 넘버에 대응하는 커맨드 데이터 셋을 취소한다.
S260단계에서, 메일 박스(300)는 커맨드 큐 레지스터(CQ1) 내에서 검색되지 않은 취소 슬롯 넘버들에 대한 페일 비트맵을 작성한다.
제 1 프로세서(140)가 커맨드 락 신호를 전송(S210)하기 전에, 이미 커맨드 큐 레지스터(CQ1)의 일부 커맨드 데이터 셋들은 제 2 프로세서(150)로 출력될 수 있다. 이에 따라, 제 1 프로세서(140)가 제공한 취소 슬롯 넘버들 중 커맨드 큐 레지스터(CQ1) 내에 존재하지 않는 것이 존재할 수 있다. 메일 박스(300)는 커맨드 큐 레지스터(CQ1) 내에서 검색되지 않은 취소 슬롯 넘버(이하, 페일 슬롯 넘버)들을 제 2 커맨드 관리 레지스터(CMR2)에 저장한다.
실시 예로서, 페일 슬롯 넘버들은 비트맵의 형태로 작성될 수 있다. 메일 박스(300)는 미리 정해진 복수의 슬롯 넘버들에 각각 대응하는 데이터 비트들을 포함하는 페일 비트맵을 생성할 것이다. 데이터 비트들 중, 페일 슬롯 넘버들에 대응하는 데이터 비트들은 선택값을 가질 것이다. 나머지 데이터 비트들은 비선택 값을 가질 것이다.
S270단계에서, 메일 박스(300)는 커맨드 큐 레지스터를 언 락한다. 예를 들면 메일 박스(300)는 메일 박스 설정부(240)의 락 레지스터(LCKR)의 데이터 비트를 '1'로 변경한다.
도 10 및 도 11은 메일 박스(300)에 저장된 커맨드 데이터 셋들(CDS1~CDSn) 중 일부가 취소되는 과정을 설명하기 위한 도면들이다.
먼저 도 10을 참조하면, 메일 박스(300)에 취소 비트맵이 수신된다. 취소 비트맵에서, 제 0, 제 2, 제 3 및 제 28, 제 29 및 제 31 데이터 비트들은 선택 값을 갖는다. 이러한 취소 비트맵에 따라, '0h', '2h', '3h', '28h', '29h' 및 '31h'는 취소 슬롯 넘버들로 특정된다.
페일 비트맵은 취소 비트맵과 동일한 개수(32개)의 데이터 비트들을 포함한다. 32개의 데이터 비트들은 각각 슬롯 넘버 '0h'~'31h'에 대응한다. 페일 비트맵의 데이터 비트들은 비선택 값으로 초기화되어 있다.
메일 박스(300)는 커맨드 큐 레지스터(CQ1) 내 커맨드 데이터 셋들(CDS1~CDSn) 중 취소 슬롯 넘버들과 일치하는 슬롯 넘버(SLTN)를 검출한다. 제 4 커맨드 데이터 셋(CDS4)의 슬롯 넘버 '3h', 제 6 커맨드 데이터 셋(CDS6)의 슬롯 넘버 '2h', 그리고 제 m 커맨드 데이터 셋(CDSm)의 슬롯 넘버 '28h'가 취소 슬롯 넘버들과 일치한다.
이에 따라, 도 11과 같이 취소 슬롯 넘버들과 일치하는 슬롯 넘버를 갖는 커맨드 데이터 셋이 취소된다. 제 4 커맨드 데이터 셋(CDS4), 제 6 커맨드 데이터 셋(CDS6) 및 제 m 커맨드 데이터 셋(CDSm) 각각은 해당 슬롯 넘버와 함께 디폴트 값으로 변경된다.
한편, '0h', '29h' 및 '31h'는 커맨드 큐 레지스터(CQ1) 내에 존재하지 않는 취소 슬롯 넘버들, 즉 페일 슬롯 넘버들이다. 제어부(330)는 페일 비트맵 중 '0h', '29h' 및 '31h'에 해당하는 데이터 비트들을 선택값으로 변경한다. 이러한 페일 비트맵은 제 2 커맨드 관리 레지스터(CMR2, 도 8 참조)에 저장된다.
도 12는 제 2 프로세서(120)의 동작 방법을 보여주는 흐름도이다.
도 1, 도 8 및 도 12를 참조하면, S310단계에서, 제 2 프로세서(150)는 커맨드 큐 레지스터(CQ1)가 락 되었음을 감지한다. 제 2 프로세서(150)는 메일 박스(300)의 락 레지스터(LCKR)를 조회함으로써 커맨드 큐 레지스터(CQ1)가 락 되었음을 감지할 것이다.
S320단계에서, 커맨드 큐 레지스터(CQ1)가 락 되는 것에 응답하여, 제 2 프로세서(150)는 이미 커맨드 큐 레지스터(CQ1)로부터 수신된 커맨드 데이터 셋들에 대한 실행을 중지한다.
실시 예로서, 제 2 프로세서(150)는 내부 버퍼를 포함하고, 커맨드 큐 레지스터(CQ1)로부터 수신된 커맨드 데이터 셋들을 내부 버퍼에 임시 저장하고, 내부 버퍼에 임시 저장된 커맨드 데이터 셋들을 순차적으로 실행할 것이다. 제 2 프로세서(150)는 커맨드 큐 레지스터(CQ1)가 락 되었음을 감지한 경우, 내부 버퍼에 저장된 커맨드 데이터 셋들에 대한 실행을 중지한다.
S330단계에서, 제 2 프로세서(150)는 커맨드 큐 레지스터(CQ1)가 언락되었는지 여부를 판별한다. 커맨드 큐 레지스터(CQ1)가 언락된 것은 취소 동작이 완료되었음을 의미한다. 커맨드 큐 레지스터(CQ1)가 언락된 것은 제 2 프로세서(150)가 레지스터 그룹(320)에 접근할 수 있음을 의미한다.
만약 커맨드 큐 레지스터(CQ1)가 언락되었다면 S340단계가 수행된다. 만약 그렇지 않다면, S310단계가 수행된다.
실시 예로서, 제 2 프로세서(150)는 커맨드 큐 레지스터(CQ1)가 락 되었음을 감지한 경우, 주기적으로 락 레지스터(LCKR)를 조회함으로써 커맨드 큐 레지스터(CQ1)가 언락 되었는지 여부를 모니터링할 수 있다.
S340단계에서, 제 2 프로세서(150)는 제 2 커맨드 관리 레지스터(CMR2)의 페일 비트맵을 조회한다. S350단계에서, 제 2 프로세서(150)는 페일 비트맵이 나타내는 페일 슬롯 넘버들이 이미 수신된 커맨드 데이터 셋들 중에 존재하는지 여부를 판별한다.
예를 들면, 도 11과 같이 페일 비트맵이 나타내는 페일 슬롯 넘버들이 '0h', '29h' 및 '31h'인 경우, 제 2 프로세서(150)는 '0h', '29h' 및 '31h'를 포함하는 커맨드 데이터 셋이 내부 버퍼에 저장되어 있는지 여부를 판별한다.
만약 페일 슬롯 넘버들이 이미 수신된 커맨드 데이터 셋들 중에 존재하는 경우 S360단계가 수행된다. 만약 그렇지 않다면, S370단계가 수행된다.
S360단계에서, 제 2 프로세서(150)는 판별된 커맨드 데이터 셋을 취소한다. 이후 S370단계에서, 제 2 프로세서(150)는 남겨진 커맨드 데이터 셋들 실행할 것이다. 이후 제 2 프로세서(150)는 커맨드 큐 레지스터(CQ1)로부터 커맨드 데이터 셋들을 수신하고, 수신된 커맨드 데이터 셋들을 실행할 것이다.
본 발명의 실시 예에 따르면, 제 1 프로세서(140)가 취소 비트맵을 메일 박스(300)로 전송하기 전에, 취소 대상인 커맨드 데이터 셋들이 이미 제 2 프로세서(150)로 전달되었다고 하더라도, 해당 커맨드 데이터 셋들은 취소될 수 있다. 따라서 반도체 장치(100)의 신뢰성은 개선된다.
본 발명의 상세한 설명에서는 구체적인 실시 예에 관하여 설명하였으나, 본 발명의 범위와 기술적 사상에서 벗어나지 않는 한도 내에서 다양한 변경이 가능하다. 그러므로 본 발명의 범위는 상술한 실시 예에 국한되어 정해져서는 안되며 후술하는 특허청구범위뿐만 아니라 이 발명의 특허청구범위와 균등한 것들에 의해 정해져야 한다.
100: 반도체 장치
110, 120: 제 1 및 제 2 기능 블록들
130: 버스
140, 150: 제 1 및 제 2 프로세서들
160, 300: 메일 박스
220, 320: 레지스터 그룹
CQ1, CQ2: 커맨드 큐 레지스터들
CMR: 커맨드 관리 레지스터
240, 340: 메일 박스 설정부

Claims (20)

  1. 복수의 커맨드 데이터 셋들을 전송하되, 상기 복수의 커맨드 데이터 셋들 각각은 커맨드 및 상기 커맨드에 대응하는 슬롯 넘버를 포함하는 제 1 프로세서;
    상기 복수의 커맨드 데이터 셋들을 수신하되, 상기 제 1 프로세서의 제어에 따라 상기 복수의 커맨드 데이터 셋들 중 일부를 취소(abort)하는 메일 박스; 및
    상기 메일 박스의 커맨드 데이터 셋들을 수신하는 제 2 프로세서를 포함하며,
    상기 제 1 프로세서는 상기 취소 시에 상기 메일 박스에 적어도 하나의 취소 슬롯 넘버를 전송하고,
    상기 메일 박스는 상기 복수의 커맨드 데이터 셋들 중 상기 적어도 하나의 취소 슬롯 넘버와 일치하는 슬롯 넘버를 갖는 커맨드 데이터 셋을 검색 및 취소하는 반도체 장치.
  2. 제 1 항에 있어서,
    상기 복수의 커맨드 데이터 셋들 각각에 포함된 슬롯 넘버는 미리 정해진 복수의 슬롯 넘버들 중 하나인 반도체 장치.
  3. 제 2 항에 있어서,
    상기 제 1 프로세서는 상기 미리 정해진 복수의 슬롯 넘버들에 각각 대응하는 데이터 비트들을 포함하는 취소 비트 맵을 상기 메일 박스에 제공하여 상기 적어도 하나의 취소 슬롯 넘버를 전송하는 반도체 장치.
  4. 제 3 항에 있어서,
    상기 취소 비트맵의 상기 데이터 비트들 중 상기 적어도 하나의 취소 슬롯 넘버에 대응하는 데이터 비트는 선택 값을 갖고, 나머지 데이터 비트들은 비선택 값을 갖는 반도체 장치.
  5. 제 4 항에 있어서,
    상기 메일 박스는 상기 취소 비트 맵의 상기 데이터 비트들 중 상기 선택 값의 데이터 비트에 대응하는 슬롯 넘버를 갖는 커맨드 데이터 셋을 검색 및 취소하는 반도체 장치.
  6. 제 1 항에 있어서,
    상기 제 1 프로세서는 상기 메일 박스에 커맨드 락 신호를 전송하고, 그 후에 상기 적어도 하나의 취소 슬롯 넘버를 전송하는 반도체 장치.
  7. 제 6 항에 있어서,
    상기 메일 박스는 상기 복수의 커맨드 데이터 셋들을 저장하는 커맨드 큐 레지스터를 포함하되, 상기 커맨드 락 신호에 응답하여 상기 커맨드 큐 레지스터에 대한 입출력을 차단하는 반도체 장치.
  8. 제 7 항에 있어서,
    상기 메일 박스는 상기 검색 및 취소가 완료된 후에 상기 커맨드 큐 레지스터에 대한 입출력을 허용하는 반도체 장치.
  9. 제 1 항에 있어서,
    상기 메일 박스는 상기 복수의 커맨드 데이터 셋들을 저장하는 커맨드 큐 레지스터 및 커맨드 관리 레지스터를 포함하되, 상기 적어도 하나의 취소 슬롯 넘버 중 상기 복수의 커맨드 데이터 셋들의 슬롯 넘버들에는 존재하지 않는 페일 슬롯 넘버를 상기 커맨드 관리 레지스터에 저장하는 반도체 장치.
  10. 제 9 항에 있어서,
    상기 복수의 커맨드 데이터 셋들 각각에 포함된 슬롯 넘버는 미리 정해진 복수의 슬롯 넘버들 중 하나이고,
    상기 메일 박스는 상기 미리 정해진 복수의 슬롯 넘버들에 각각 대응하는 데이터 비트들을 포함하는 페일 비트맵을 상기 커맨드 관리 레지스터에 저장하되,
    상기 페일 비트 맵에 따라 상기 페일 슬롯 넘버가 특정되는 반도체 장치.
  11. 제 10 항에 있어서,
    상기 페일 비트맵의 상기 데이터 비트들 중 상기 페일 슬롯 넘버에 대응하는 데이터 비트는 선택 값을 갖고, 나머지 데이터 비트들은 비선택 값을 갖는 반도체 장치.
  12. 제 9 항에 있어서,
    상기 제 2 프로세서는 상기 메일 박스로부터 수신된 커맨드 데이터 셋들을 임시 저장하되, 상기 커맨드 관리 레지스터를 조회하여 상기 임시 저장된 커맨드 데이터 셋들의 슬롯 넘버들이 상기 페일 슬롯 넘버와 일치하는지 판별하는 반도체 장치.
  13. 제 12 항에 있어서,
    상기 제 2 프로세서는 상기 임시 저장된 커맨드 데이터 셋들 중 상기 페일 슬롯 넘버와 일치하는 슬롯 넘버를 갖는 커맨드 데이터 셋을 취소하고, 나머지 커맨드 데이터 셋들의 커맨드들을 실행하는 반도체 장치.
  14. 복수의 프로세서들을 포함하는 반도체 장치의 동작 방법에 있어서:
    상기 복수의 프로세서들 중 제 1 프로세서에서 생성된 복수의 커맨드 데이터 셋들을 메일 박스에 저장하되, 상기 복수의 커맨드 데이터 셋들 각각은 커맨드 및 상기 커맨드에 대응하는 슬롯 넘버를 포함하는 단계;
    상기 제 1 프로세서에서 상기 메일 박스로 적어도 하나의 취소 슬롯 넘버를 전송하는 단계;
    상기 메일 박스에 저장된 상기 복수의 커맨드 데이터 셋들 중 상기 적어도 하나의 취소 슬롯 넘버와 일치하는 슬롯 넘버를 갖는 커맨드 데이터 셋을 취소(abort)하는 단계; 및
    상기 메일 박스에 저장된 커맨드 데이터 셋들을 상기 복수의 프로세서들 중 제 2 프로세서로 전송하는 단계를 포함하는 동작 방법.
  15. 제 14 항에 있어서,
    상기 복수의 커맨드 데이터 셋들 각각에 포함된 슬롯 넘버는 미리 정해진 복수의 슬롯 넘버들 중 하나이며,
    상기 적어도 하나의 취소 슬롯 넘버를 전송하는 단계는 상기 미리 정해진 복수의 슬롯 넘버들에 각각 대응하는 데이터 비트들을 포함하는 취소 비트 맵을 상기 메일 박스에 제공함으로써 상기 적어도 하나의 취소 슬롯 넘버를 전송하는 단계를 포함하는 동작 방법.
  16. 제 15 항에 있어서,
    상기 취소 비트맵의 상기 데이터 비트들 중 상기 적어도 하나의 취소 슬롯 넘버에 대응하는 데이터 비트는 선택 값을 갖고, 나머지 데이터 비트들은 비선택 값을 갖는 동작 방법.
  17. 제 16 항에 있어서,
    상기 취소하는 단계는 상기 취소 비트맵의 상기 데이터 비트들 중 상기 선택 값의 데이터 비트에 대응하는 슬롯 넘버를 갖는 커맨드 데이터 셋을 취소하는 단계를 포함하는 동작 방법.
  18. 제 14 항에 있어서,
    상기 적어도 하나의 취소 슬롯 넘버 중 상기 복수의 커맨드 데이터 셋들의 슬롯 넘버들에는 존재하지 않는 페일 슬롯 넘버를 상기 메일 박스에 저장하는 단계를 더 포함하는 동작 방법.
  19. 제 18 항에 있어서,
    상기 메일 박스로부터 상기 제 2 프로세서로 전송된 커맨드 데이터 셋들을 임시 저장하는 단계; 및
    상기 메일 박스의 상기 페일 슬롯 넘버를 조회하여 상기 임시 저장된 커맨드 데이터 셋들의 슬롯 넘버들이 상기 페일 슬롯 넘버와 일치하는지 여부를 판별하는 단계를 더 포함하는 동작 방법.
  20. 제 19 항에 있어서,
    상기 임시 저장된 커맨드 데이터 셋들 중 상기 페일 슬롯 넘버와 일치하는 슬롯 넘버를 갖는 커맨드 데이터 셋은 취소되고,
    상기 제 2 프로세서는 나머지 커맨드 데이터 셋들의 커맨드들을 실행하는 동작 방법.
KR1020140054205A 2014-05-07 2014-05-07 복수의 프로세서들을 포함하는 반도체 장치 및 그것의 동작 방법 KR20150127914A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020140054205A KR20150127914A (ko) 2014-05-07 2014-05-07 복수의 프로세서들을 포함하는 반도체 장치 및 그것의 동작 방법
US14/515,232 US9582341B2 (en) 2014-05-07 2014-10-15 Semiconductor device including a plurality of processors and a method of operating the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140054205A KR20150127914A (ko) 2014-05-07 2014-05-07 복수의 프로세서들을 포함하는 반도체 장치 및 그것의 동작 방법

Publications (1)

Publication Number Publication Date
KR20150127914A true KR20150127914A (ko) 2015-11-18

Family

ID=54367932

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140054205A KR20150127914A (ko) 2014-05-07 2014-05-07 복수의 프로세서들을 포함하는 반도체 장치 및 그것의 동작 방법

Country Status (2)

Country Link
US (1) US9582341B2 (ko)
KR (1) KR20150127914A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180118926A (ko) * 2017-04-24 2018-11-01 에스케이하이닉스 주식회사 복수의 프로세서를 포함하는 컨트롤러 및 컨트롤러의 동작방법

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170116154A1 (en) * 2015-10-23 2017-04-27 The Intellisis Corporation Register communication in a network-on-a-chip architecture
US11899978B2 (en) * 2021-12-06 2024-02-13 Samsung Electronics Co., Ltd. Method and system to abort a command for PCIe based non-volatile memory express solid-state drive

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5155858A (en) * 1988-10-27 1992-10-13 At&T Bell Laboratories Twin-threshold load-sharing system with each processor in a multiprocessor ring adjusting its own assigned task list based on workload threshold
US6226695B1 (en) 1995-09-29 2001-05-01 International Business Machines Corporation Information handling system including non-disruptive command and data movement between storage and one or more auxiliary processors
JP3573980B2 (ja) 1998-11-13 2004-10-06 富士通株式会社 情報処理装置及び情報処理システム
US6553480B1 (en) * 1999-11-05 2003-04-22 International Business Machines Corporation System and method for managing the execution of instruction groups having multiple executable instructions
US7437550B2 (en) * 1999-12-02 2008-10-14 Ponoi Corp. System for providing session-based network privacy, private, persistent storage, and discretionary access control for sharing private data
KR20090077822A (ko) 2006-10-12 2009-07-15 가부시키가이샤 어드밴티스트 시험장치 및 제어방법
US8751755B2 (en) * 2007-12-27 2014-06-10 Sandisk Enterprise Ip Llc Mass storage controller volatile memory containing metadata related to flash memory storage
US20130179614A1 (en) * 2012-01-10 2013-07-11 Diarmuid P. Ross Command Abort to Reduce Latency in Flash Memory Access
US8924615B2 (en) * 2012-10-26 2014-12-30 Arm Limited Communication of message signalled interrupts

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180118926A (ko) * 2017-04-24 2018-11-01 에스케이하이닉스 주식회사 복수의 프로세서를 포함하는 컨트롤러 및 컨트롤러의 동작방법

Also Published As

Publication number Publication date
US20150324243A1 (en) 2015-11-12
US9582341B2 (en) 2017-02-28

Similar Documents

Publication Publication Date Title
US8667229B2 (en) Data access method of a memory device
CN109085997A (zh) 用于非易失性存储器的存储器高效持续键值储存
CN111159075B (zh) 数据传输方法和数据传输装置
CN111723030B (zh) 存储器系统及存储器系统的控制方法
US10802750B2 (en) Universal flash storage memory module, controller and electronic device with advanced turbo write buffer and method for operating the memory module
US10585642B2 (en) System and method for managing data in a ring buffer
CN105320622A (zh) 内部存储器、外部存储器以及数据处理系统
KR20160081797A (ko) 버퍼를 갖는 컴퓨팅 시스템 및 그것의 동작 방법
US7861032B2 (en) Data storage system including respective buffers for non-volatile memory and disc recording medium, and data access method thereof
KR20150127914A (ko) 복수의 프로세서들을 포함하는 반도체 장치 및 그것의 동작 방법
US20170221535A1 (en) Non-volatile memory accelerator and method for speeding up data access
US9195618B2 (en) Method and system for scheduling memory requests
US8065496B2 (en) Method for updating information used for selecting candidate in LRU control
US10366049B2 (en) Processor and method of controlling the same
US20120047220A1 (en) Data transfer device and data transfer system
US7421536B2 (en) Access control method, disk control unit and storage apparatus
US20050138236A1 (en) Direct memory access control device and method for automatically updating data transmisson size from peripheral
JP2009199384A (ja) データ処理装置
KR20090053164A (ko) 상태 정보를 관리하는 플래시 메모리 제어 장치 및 방법
US10228883B2 (en) Storage device that postpones completion of read command to begin execution of a non-read command
KR20090128605A (ko) 버스트 전송이 가능한 프로세서간 통신 장치, 프로세서간통신 장치를 포함하는 시스템 및 프로세서간 통신 장치를구동하기 위한 디바이스 드라이버
JP4721741B2 (ja) データ処理モジュール及びそのメッセージ受信方法
US20230305705A1 (en) Memory system and control method of memory system
US11269797B2 (en) Method and system for controlling data response with aid of attribute of transaction identifier
US20210218666A1 (en) Tailored contact plan generation

Legal Events

Date Code Title Description
WITN Withdrawal due to no request for examination