KR20160107400A - 복수의 기능 블록들을 포함하는 반도체 장치 및 그것의 동작 방법 - Google Patents
복수의 기능 블록들을 포함하는 반도체 장치 및 그것의 동작 방법 Download PDFInfo
- Publication number
- KR20160107400A KR20160107400A KR1020150029816A KR20150029816A KR20160107400A KR 20160107400 A KR20160107400 A KR 20160107400A KR 1020150029816 A KR1020150029816 A KR 1020150029816A KR 20150029816 A KR20150029816 A KR 20150029816A KR 20160107400 A KR20160107400 A KR 20160107400A
- Authority
- KR
- South Korea
- Prior art keywords
- bus
- data
- slave
- function block
- ram
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/36—Handling requests for interconnection or transfer for access to common bus or bus system
- G06F13/362—Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4063—Device-to-bus coupling
- G06F13/4068—Electrical coupling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4063—Device-to-bus coupling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/36—Handling requests for interconnection or transfer for access to common bus or bus system
- G06F13/362—Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
- G06F13/364—Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control using independent requests or grants, e.g. using separated request and grant lines
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4027—Coupling between buses using bus bridges
- G06F13/404—Coupling between buses using bus bridges with address mapping
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4204—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
- G06F13/4208—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a system bus, e.g. VME bus, Futurebus, Multibus
- G06F13/4217—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a system bus, e.g. VME bus, Futurebus, Multibus with synchronous protocol
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4204—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
- G06F13/4234—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Information Transfer Systems (AREA)
- Semiconductor Integrated Circuits (AREA)
Abstract
본 발명의 실시 예에 따른 반도체 장치는 버스, 버스에 연결되는 슬레이브 기능 블록, 버스 인터페이스를 통해 버스에 연결되는 마스터 기능 블록, 그리고 버스 인터페이스를 모니터링하는 종속 슬레이브 기능 블록을 포함한다. 종속 슬레이브 기능 블록은 버스 인터페이스 상에서 통신되는 버스 아이디가 복수의 아이디들 중 어느 하나와 일치할 때, 버스 아이디와 함께 통신되는 데이터를 캐치하도록 구성된다.
Description
본 발명은 전자 장치에 관한 것으로, 좀 더 구체적으로는 반도체 장치 및 그것의 동작 방법에 관한 것이다.
반도체 장치(semiconductor device)는 각각 특정 동작들을 수행하기 위한 복수의 기능 블록들을 포함할 수 있다. 그러한 복수의 기능 블록들은 버스에 연결되고, 상호 통신할 수 있다. 버스에 의해 정의된 통신 프로토콜에 따라, 기능 블록들은 상호 통신한다.
각 기능 블록은 마스터 기능 블록 및 슬레이브 기능 블록의 기능을 수행할 수 있다. 예를 들면, 제 1 기능 블록과 제 2 기능 블록이 버스를 통해 통신할 때 제 1 기능 블록이 제 2 기능 블록에 읽기 요청을 전송하고, 제 2 기능 블록은 읽기 요청에 응답하여 데이터를 제 1 기능 블록으로 전송할 수 있다. 또는 제 1 기능 블록이 제 2 기능 블록에 쓰기 요청을 전송한 후 데이터를 제 2 기능 블록에 전송하면, 제 2 기능 블록은 해당 데이터를 저장할 수 있다. 이러한 경우 제 1 기능 블록은 마스터 기능 블록이고, 제 2 기능 블록은 제 1 기능 블록의 요청에 따라 동작하는 슬레이브 기능 블록이다. 하나의 기능 블록은 다른 기능 블록과의 관계에서 마스터 기능 블록으로서 정의될 수 있고, 반면 또 다른 기능 블록과의 관계에서 슬레이브 기능 블록으로서 정의될 수 있다.
본 발명의 실시 예는 향상된 동작 속도를 갖는 반도체 장치 및 그것의 동작 방법을 제공하기 위한 것이다.
본 발명의 실시 예에 따른 반도체 장치는 버스(Bus); 상기 버스에 연결되는 슬레이브 기능 블록; 버스 인터페이스를 통해 상기 버스에 연결되며, 상기 버스 인터페이스 및 상기 버스를 통해 상기 슬레이브 기능 블록에 요청(request)을 전송할 때 상기 요청과 함께 버스 아이디를 상기 슬레이브 기능 블록에 제공하도록 구성되는 마스터 기능 블록; 및 상기 버스 인터페이스를 모니터링하는 종속 슬레이브 기능 블록을 포함한다. 상기 마스터 기능 블록과 상기 슬레이브 기능 블록은 상기 요청에 대응하는 데이터를 통신할 때, 상기 데이터와 함께 상기 버스 아이디를 전송하도록 구성되고, 상기 종속 슬레이브 기능 블록은 상기 버스 인터페이스 상에서 통신되는 상기 버스 아이디가 복수의 아이디들 중 어느 하나와 일치할 때, 상기 버스 아이디와 함께 통신되는 상기 데이터를 캐치하도록 구성된다.
실시 예로서, 상기 종속 슬레이브 기능 블록은 상기 복수의 아이디들을 저장하는 동작 메모리를 포함할 수 있다.
실시 예로서, 상기 종속 슬레이브 기능 블록은 상기 버스 아이디의 값에 따라 커맨드되어 상기 캐치된 데이터를 처리할 수 있다.
실시 예로서, 상기 종속 슬레이브 기능 블록은 복수의 저장 영역들을 갖는 내부 메모리를 포함하며, 상기 종속 슬레이브 기능 블록은 상기 복수의 저장 영역들 중 상기 버스 아이디의 값에 따라 정해지는 저장 영역에 상기 처리된 데이터를 저장할 수 있다.
실시 예로서, 상기 마스터 기능 블록은 상기 버스 아이디에 기반하여 상기 종속 슬레이브 기능 블록에 저장된 상기 처리된 데이터를 읽을 수 있다.
실시 예로서, 상기 슬레이브 기능 블록은 램(Random Access Memory, RAM)이고, 상기 마스터 기능 블록은 불휘발성 메모리와 연결된 메모리 제어부이고, 상기 종속 슬레이브 기능 블록은 RAID 제어부일 수 있다.
실시 예로서, 상기 요청은 상기 램에 저장된 상기 데이터에 대한 읽기 요청이고, 상기 메모리 제어부는 상기 읽기 요청과 함께 상기 버스 아이디를 상기 램에 전송하고, 상기 램은 상기 읽기 요청에 응답하여 상기 데이터를 상기 메모리 제어부에 전송하되, 상기 데이터와 함께 상기 버스 아이디를 상기 메모리 제어부에 전송할 수 있다.
실시 예로서, 상기 RAID 제어부는 상기 데이터와 함께 전송되는 상기 버스 아이디를 상기 버스 인터페이스 상에서 감지하고, 상기 버스 아이디가 상기 복수의 아이디들 중 어느 하나와 일치할 때 상기 데이터를 캐치하고, 상기 캐치된 데이터를 처리하도록 구성될 수 있다.
실시 예로서, 상기 RAID 제어부는 제 1 저장 영역들 및 제 2 저장 영역을 갖는 내부 메모리를 포함하며, 상기 RAID 제어부는 상기 캐치된 데이터에 대한 패리티 비트들을 생성하고, 상기 패리티 비트들을 상기 제 1 저장 영역들 중 상기 버스 아이디의 값에 의해 정해지는 저장 영역에 저장하고, 상기 제 2 저장 영역은 상기 복수의 아이디들을 저장할 수 있다.
실시 예로서, 상기 메모리 제어부는 다이렉트 인터페이스를 통해 상기 RAID 제어부에 연결되며, 상기 메모리 제어부는 상기 램으로부터 제공된 상기 데이터를 상기 불휘발성 메모리에 저장하되, 상기 다이렉트 인터페이스를 통해 상기 패리티 비트들을 읽고 상기 패리티 비트들을 상기 불휘발성 메모리에 저장할 수 있다.
실시 예로서, 상기 슬레이브 기능 블록은 램이고, 상기 마스터 기능 블록은 불휘발성 메모리와 연결된 메모리 제어부이고, 상기 종속 슬레이브 기능 블록은 데이터 압축부일 수 있다.
실시 예로서, 상기 메모리 제어부는 상기 램에 상기 요청과 함께 상기 버스 아이디를 제공하고, 상기 요청 이후 상기 메모리 제어부와 상기 램 사이에서 상기 데이터가 통신될 때 상기 데이터와 함께 상기 버스 아이디가 전송되고, 상기 데이터 압축부는 상기 데이터와 함께 전송되는 상기 버스 아이디를 상기 버스 인터페이스 상에서 감지하고, 상기 버스 아이디가 상기 복수의 아이디들 중 어느 하나와 일치할 때 상기 데이터를 캐치하고, 상기 캐치된 데이터를 처리하도록 구성될 수 있다.
실시 예로서, 상기 데이터 압축부는 상기 버스 아이디의 비트들 중 제 1 비트들에 따라 상기 캐치된 데이터를 압축하거나 상기 캐치된 데이터를 압축 해제할 수 있다.
실시 예로서, 상기 데이터 압축부는 제 1 저장 영역들 및 제 2 저장 영역을 갖는 내부 메모리를 포함하며, 상기 데이터 압축부는 상기 처리된 데이터를 상기 버스 아이디의 비트들 중 제 2 비트들에 따라 상기 제 1 저장 영역들 중 어느 하나에 저장하고, 상기 제 2 저장 영역은 상기 복수의 아이디들을 저장할 수 있다.
실시 예로서, 상기 반도체 장치는 상기 버스에 연결되는 프로세싱 유닛을 더 포함하되, 상기 프로세싱 유닛은 상기 버스를 통해 상기 데이터 압축부로부터 상기 램으로 상기 처리된 데이터를 로드할 수 있다.
본 발명의 일면은 버스 인터페이스를 통해 버스에 연결되는 마스터 기능 블록을 포함하는 반도체 장치의 동작 방법에 관한 것이다. 본 발명의 실시 예에 따른 동작 방법은 상기 마스터 기능 블록으로부터 상기 버스 인터페이스 및 상기 버스를 통해 슬레이브 기능 블록에 요청을 전송할 때, 상기 요청과 함께 버스 아이디를 상기 슬레이브 기능 블록에 제공하는 단계; 상기 버스 아이디가 제공된 후에, 상기 마스터 기능 블록과 상기 슬레이브 기능 블록 사이에서 상기 요청에 대응하는 데이터가 통신될 때 상기 데이터와 함께 상기 버스 아이디를 전송하는 단계; 상기 버스 인터페이스를 모니터링하는 단계; 및 상기 버스 인터페이스 상에서 통신되는 상기 버스 아이디가 복수의 아이디들 중 어느 하나와 일치할 때, 상기 데이터를 캐치하는 단계를 포함할 수 있다.
실시 예로서, 상기 동작 방법은 상기 캐치된 데이터를 상기 버스 아이디의 값에 따라 처리하는 단계를 더 포함할 수 있다.
실시 예로서, 상기 반도체 장치는 복수의 저장 영역들을 포함하며, 상기 처리하는 단계는, 상기 복수의 저장 영역들 중 상기 버스 아이디의 값에 따라 정해지는 저장 영역에 상기 처리된 데이터를 저장하는 단계를 포함할 수 있다.
실시 예로서, 상기 동작 방법은 상기 복수의 아이디들을 저장하는 단계를 더 포함할 수 있다.
본 발명의 실시 예에 따르면, 향상된 동작 속도를 갖는 반도체 장치 및 그것의 동작 방법이 제공된다.
도 1은 본 발명의 실시 예에 따른 반도체 장치를 보여주는 블록도이다.
도 2는 본 발명의 실시 예에 따른 반도체 장치의 동작 방법을 보여주는 순서도이다.
도 3은 아이디 테이블을 개념적으로 보여주는 도면이다.
도 4는 도 1의 반도체 장치의 변형 실시 예를 보여주는 블록도이다.
도 5는 도 4의 내부 메모리를 개념적으로 보여주는 도면이다.
도 6은 도 4의 반도체 장치의 동작 방법을 보여주는 순서도이다.
도 7은 도 1의 반도체 장치의 또 다른 변형 실시 예를 보여주는 블록도이다.
도 8은 도 7의 반도체 장치의 동작 방법을 보여주는 순서도이다.
도 2는 본 발명의 실시 예에 따른 반도체 장치의 동작 방법을 보여주는 순서도이다.
도 3은 아이디 테이블을 개념적으로 보여주는 도면이다.
도 4는 도 1의 반도체 장치의 변형 실시 예를 보여주는 블록도이다.
도 5는 도 4의 내부 메모리를 개념적으로 보여주는 도면이다.
도 6은 도 4의 반도체 장치의 동작 방법을 보여주는 순서도이다.
도 7은 도 1의 반도체 장치의 또 다른 변형 실시 예를 보여주는 블록도이다.
도 8은 도 7의 반도체 장치의 동작 방법을 보여주는 순서도이다.
이하, 본 발명에 따른 바람직한 실시 예를 첨부한 도면을 참조하여 상세히 설명한다. 하기의 설명에서는 본 발명에 따른 동작을 이해하는데 필요한 부분만이 설명되며 그 이외 부분의 설명은 본 발명의 요지를 모호하지 않도록 하기 위해 생략될 것이라는 것을 유의하여야 한다. 또한 본 발명은 여기에서 설명되는 실시 예에 한정되지 않고 다른 형태로 구체화될 수도 있다. 단지, 여기에서 설명되는 실시 예은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 본 발명의 기술적 사상을 용이하게 실시할 수 있을 정도로 상세히 설명하기 위하여 제공되는 것이다.
명세서 전체에서, 어떤 부분이 다른 부분과 "연결"되어 있다고 할 때, 이는 "직접적으로 연결"되어 있는 경우뿐 아니라, 그 중간에 다른 소자를 사이에 두고 "간접적으로 연결"되어 있는 경우도 포함한다. 명세서 전체에서, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
도 1은 본 발명의 실시 예에 따른 반도체 장치(100)를 보여주는 블록도이다.
도 1을 참조하면, 반도체 장치(100)는 마스터 기능 블록(110), 슬레이브 기능 블록(120), 버스(130), 및 종속 슬레이브 기능 블록(140)을 포함한다. 마스터 기능 블록(110), 슬레이브 기능 블록(120), 및 종속 슬레이브 기능 블록(140) 각각은 특정 기능을 수행하도록 구성된다.
마스터 기능 블록(110)은 버스 인터페이스(BIF)를 통해 버스(130)에 연결된다. 실시 예로서, 버스 인터페이스(BIF)는 마스터 기능 블록(110)이 버스(130)와 통신하기 위한 프로토콜을 제공할 수 있다. 마스터 기능 블록(110)은 버스 인터페이스(BIF) 및 버스(130)를 통해 슬레이브 기능 블록(120)을 제어하도록 구성된다. 마스터 기능 블록(110)이 요청을 슬레이브 기능 블록(120)에 전송하면, 슬레이브 기능 블록(120)은 요청에 해당하는 동작을 수행하고, 수행 결과를 데이터로서 마스터 기능 블록(110)에 전송할 것이다. 마스터 기능 블록(110)이 요청을 슬레이브 기능 블록(120)에 전송하고, 이후 데이터를 슬레이브 기능 블록(120)에 전송하면, 슬레이브 기능 블록(120)은 수신된 데이터에 대해 요청에 해당하는 처리를 수행할 것이다.
실시 예로서, 요청은 컨트롤 신호와 어드레스 신호를 포함할 수 있다. 컨트롤 신호는 요청에 해당하는 데이터의 타입, 길이와 같은 정보를 포함하며, 어드레스 신호는 슬레이브 기능 블록 내 저장 공간을 가리키기 위한 정보를 포함할 수 있다. 예를 들면, 마스터 기능 블록(110)과 슬레이브 기능 블록(120)은 AXI 프로토콜에 따라 통신할 수 있다.
슬레이브 기능 블록(120)은 마스터 기능 블록(110)의 제어에 따라 동작한다. 도 1에 도시되지는 않으나, 슬레이브 기능 블록(120)은 슬레이브 기능 블록(120)과 버스(130) 사이의 통신을 수행하기 위한 인터페이스를 구비할 수 있다.
버스(130)는 마스터 기능 블록(110) 및 슬레이브 기능 블록(120)을 연결한다. 실시 예로서, 버스(130)는 AXI 프로토콜에 따른 통신 경로를 제공할 수 있다.
마스터 기능 블록(110)은 슬레이브 기능 블록(120)에 요청을 전송할 때, 요청과 함께 버스 아이디(Identification)를 전송하도록 구성된다. 버스 아이디는 다수의 비트들로 구성될 것이다. 이러한 버스 아이디는, 요청을 전송한 후 송수신되는 데이터를 식별하기 위해 사용된다. 예를 들면, 마스터 기능 블록(110)은 슬레이브 기능 블록(120)에 요청 및 버스 아이디를 전송한 후, 슬레이브 기능 블록(120)에 데이터 및 동일한 버스 아이디를 전송할 수 있다. 슬레이브 기능 블록(120)은 요청과 함께 수신된 버스 아이디를 감지하고, 이후 동일한 버스 아이디가 수신될 때 그와 함께 수신된 데이터는 요청에 해당하는 데이터임을 인지할 것이다. 예를 들면, 마스터 기능 블록(110)이 슬레이브 기능 블록(120)에 요청 및 버스 아이디를 전송하면, 슬레이브 기능 블록(120)은 요청에 응답하여 데이터 및 동일한 버스 아이디를 전송할 수 있다. 마스터 기능 블록(110)은 동일한 버스 아이디가 수신될 때 그와 함께 수신된 데이터가 요청에 해당하는 데이터임을 인지할 것이다.
본 발명의 실시 예에 따르면, 버스 인터페이스(BIF)와 종속 인터페이스(SIF)를 통해 연결되는 종속 슬레이브 기능 블록(140)이 제공된다. 종속 슬레이브 기능 블록(140)은 종속 인터페이스(SIF)를 통해 버스 인터페이스(BIF)를 모니터링하고, 미리 정해진 아이디들 중 어느 하나와 일치하는 버스 아이디가 버스 인터페이스(BIF) 상에서 통신되는지 여부를 감지하도록 구성된다. 종속 슬레이브 기능 블록(140)은 내부 메모리를 구비하고, 내부 메모리는 복수의 아이디들을 포함하는 아이디 테이블(IDT)을 저장한다.
버스 아이디가 아이디 테이블(IDT)의 아이디들 중 어느 하나와 일치할 때, 종속 슬레이브 기능 블록(140)은 버스 인터페이스(BIF) 상에서 버스 아이디와 함께 전송되는 데이터를 캐치한다. 이에 따라, 마스터 기능 블록(110)와 슬레이브 기능 블록(120) 사이에서 통신된 데이터가 종속 슬레이브 기능 블록(140)으로 제공되어야 하는 경우, 출발지 기능 블록(110 또는 120)으로부터 종속 슬레이브 기능 블록(140)으로 다시 데이터가 전송되는 프로세스는 요구되지 않는다. 종속 슬레이브 기능 블록(140)은 마스터 기능 블록(110)과 슬레이브 기능 블록(120) 사이의 통신이 수행되는 동안 해당 데이터를 캐치한다. 따라서, 향상된 동작 속도를 갖는 반도체 장치(100)가 제공된다.
본 발명의 실시 예에 따르면, 종속 슬레이브 기능 블록(140)은 버스 인터페이스(BIF)를 모니터링한다. 복수의 기능 블록들이 연결된 버스(130)를 모니터링할 때보다, 모니터링을 위해 종속 슬레이브 기능 블록(140)이 소요하는 자원은 감소한다.
본 발명의 실시 예에 따르면, 버스(130) 상에서 통신되는 데이터를 식별하기 위해 기능 블록들(110, 120) 간 통신되는 버스 아이디에 기반하여, 종속 슬레이브 기능 블록(140)은 해당 데이터를 캐치한다. 즉 종속 슬레이브 기능 블록(140)이 데이터를 캐치하기 위해, 별도의 메타 정보가 정의되고 출발지 기능 블록(110 또는 120)이 메타 정보를 추가적으로 전송하는 것은 요구되지 않는다. 출발지 기능 블록(110 또는 120)으로부터 버스 아이디와 데이터만 전송되더라도, 종속 슬레이브 기능 블록(140)은 버스 아이디에 기반하여 데이터를 캐치할 수 있다. 따라서, 마스터 기능 블록(110)과 슬레이브 기능 블록(120) 사이에서 심플한 통신이 수행되면서도, 종속 슬레이브 기능 블록(140)은 타겟 데이터를 캐치할 수 있다.
이후, 종속 슬레이브 기능 블록(140)은 버스 아이디에 따라 커맨드되어 캐치된 데이터를 처리한다.
도 2는 본 발명의 실시 예에 따른 반도체 장치(100)의 동작 방법을 보여주는 순서도이다. 도 3은 아이디 테이블(IDT)을 개념적으로 보여주는 도면이다.
도 1 및 도 2를 참조하면, S110단계에서, 종속 슬레이브 기능 블록(140)은 버스 인터페이스(BIF)를 모니터링한다. S120단계에서, 마스터 기능 블록(110)으로부터 슬레이브 기능 블록(120)으로 요청과 함께 버스 아이디가 전송된다. 이후, S130단계에서, 마스터 기능 블록(110)과 슬레이브 기능 블록(120) 사이에서 요청에 대응하는 데이터가 통신될 때 버스 아이디가 데이터와 함께 제공된다.
S140단계에서, 종속 슬레이브 기능 블록(140)은 버스 인터페이스(BIF) 상에서 데이터와 함께 통신되는 버스 아이디가 아이디 테이블(IDT) 내에 존재하는지 여부를 판별한다. 만약 버스 아이디가 아이디 테이블 내에 존재한다면, S150단계가 수행된다. S150단계에서, 종속 슬레이브 기능 블록(140)은 버스 아이디와 함께 전송되는 데이터를 캐치(catch)한다.
S160단계에서, 종속 슬레이브 기능 블록(140)은 버스 아이디에 대응하는 커맨드에 따라 데이터를 처리한다. 종속 슬레이브 기능 블록(140)은 버스 아이디에 따라 커맨드되어 캐치된 데이터를 처리한다.
도 3을 참조하면, 아이디 테이블(IDT)은 제 1 내지 제 n 아이디들(ID1~IDn)을 포함한다. 제 1 내지 제 n 아이디들(ID1~IDn)은 각각 제 1 내지 제 n 커맨드들(CMD1~CMDn)에 대응한다. 즉 종속 슬레이브 기능 블록(140)은 버스 아이디가 아이디들(ID1~IDn) 중 어떤 아이디인지에 따라 커맨드된다. 실시 예로서, 종속 슬레이브 기능 블록(140)은 버스 아이디의 값에 따라 데이터의 처리 후 처리된 데이터를 저장할 위치를 결정한다. 예를 들면, 종속 슬레이브 기능 블록(140) 내 내부 메모리는 복수의 저장 영역들로 구분되고, 종속 슬레이브 기능 블록(140)은 처리된 데이터를 복수의 저장 영역들 중 버스 아이디의 값에 따라 정해지는 저장 영역에 저장할 수 있다. 실시 예로서, 버스 아이디의 값은 종속 슬레이브 기능 블록(140)이 데이터를 처리하는 방식을 나타낼 수 있다. 예를 들면, 종속 슬레이브 기능 블록(140)이 데이터를 압축(compress) 및 압축 해제(decompress)하는 기능을 수행하기 위한 구성인 경우, 종속 슬레이브 기능 블록(140)은 버스 아이디의 값에 따라 데이터를 압축하거나, 압축 해제할 것이다. 예를 들면, 종속 슬레이브 기능 블록(140)이 데이터의 에러를 정정하는 기능을 수행하는 구성인 경우, 슬레이브 기능 블록(140)은 버스 아이디의 값에 따라 에러 정정 코드(Error Correction Code)의 타입을 선택하여 선택된 에러 정정 코드로 데이터의 에러를 정정할 것이다. 에러 정정 코드로서, BCH 코드(Bose, Chaudhri, Hocquenghem Code), 리드 솔로몬 코드(Reed Solomon Code), 해밍 코드(Hamming code) 등 중 적어도 하나가 선택될 수 있다. 이 밖에도, 종속 슬레이브 기능 블록(140)의 다양한 동작들이 각각 서로 다른 버스 아이디들에 대응할 수 있음이 이해될 것이다.
이와 같이 버스 아이디에 따라 종속 슬레이브 기능 블록(140)이 커맨드됨으로써, 종속 슬레이브 기능 블록(140)에 별도의 요청이 전송되지 않더라도 종속 슬레이브 기능 블록(140)은 캐치된 데이터를 버스 아이디에 따라 처리할 수 있다. 따라서, 향상된 동작 속도를 갖는 반도체 장치(100)가 제공된다.
종속 슬레이브 기능 블록(140)에 의해 처리된 데이터는 종속 슬레이브 기능 블록(140) 내부에 저장되고, 이후 마스터 기능 블록(110)은 버스 아이디에 기반하여 종속 슬레이브 기능 블록(140)으로부터 처리된 데이터를 읽을 수 있다.
도 4는 도 1의 반도체 장치(100)의 변형 실시 예(200)를 보여주는 블록도이다.
도 4를 참조하면, 반도체 장치(100)는 프로세싱 유닛(205), 메모리 제어부(210), 불휘발성 메모리(215), 램(220), 버스(230), 및 RAID(Redundant Array of Independent Disks) 제어부(240)를 포함한다.
프로세싱 유닛(205)은 버스(230)에 연결된다. 프로세싱 유닛(205)은 외부의 호스트(미도시)로부터의 제어에 응답하여 반도체 장치(200)의 제반 동작을 제어한다. 실시 예로서, 프로세싱 유닛(205)은 펌웨어를 저장하는 별도의 저장 매체에 연결되고, 해당 저장 매체에 저장된 펌웨어에 따라 동작할 수 있다. 실시 예로서, 프로세싱 유닛(205)은 플래시 변환 레이어(Flash Translation Layer)의 기능을 수행할 수 있다.
메모리 제어부(210)는 버스 인터페이스(BIF)를 통해 버스(230)에 연결되고, 메모리 인터페이스(MIF)를 통해 불휘발성 메모리(215)에 연결된다. 메모리 제어부(210)는 도 1의 마스터 기능 블록(110)으로서 제공된다. 이 실시 예에서, 메모리 제어부(210)는 다이렉트 인터페이스(DIF)를 통해 RAID 제어부(240)에 연결되어 있다.
메모리 제어부(210)는 프로세싱 유닛(205)의 제어에 따라 불휘발성 메모리(215)를 제어하도록 구성된다. 실시 예로서, 메모리 제어부(210)는 프로세싱 유닛(205)의 제어에 응답하여 불휘발성 메모리(215)의 읽기 동작, 프로그램 동작, 소거 동작, 및 배경(background) 동작을 제어할 것이다. 메모리 제어부(210)는 램(220)으로부터 데이터를 읽고, 해당 데이터를 불휘발성 메모리(215)에 프로그램할 것이다. 메모리 제어부(210)는 불휘발성 메모리(215)로부터 데이터를 읽고, 해당 데이터를 램(220)에 저장할 것이다.
램(220)은 버스(230)에 연결된다. 램(220)은 도 1의 슬레이브 기능 블록(120)으로서 제공된다. 램(220)은 프로세싱 유닛(205) 및 메모리 제어부(210)의 제어에 따라 동작한다. 실시 예로서, 램(220)은 외부 호스트 및 불휘발성 메모리(215) 사이의 버퍼 메모리로서 이용될 수 있다. 실시 예로서, 램(220)은 프로세싱 유닛(205)의 동작 메모리로서 이용될 수 있다.
프로세싱 유닛(205)은 불휘발성 메모리(215)에 프로그램될 데이터를 램(220)에 임시 저장할 것이다. 이하, 램(220)에 저장되거나 저장될 데이터는 램 데이터라 정의된다. 이후 메모리 제어부(210)는 램 데이터를 버스(230)를 통해 읽고, 읽어진 데이터를 불휘발성 메모리(215)에 프로그램할 것이다. 메모리 제어부(210)는 램 데이터를 수신하기 위한 요청(이하, 읽기 요청) 및 버스 아이디를 램(220)에 전송할 것이다. 읽기 요청에 응답하여, 램(220)은 버스 아이디 및 읽기 요청에 해당하는 램 데이터를 메모리 제어부(210)에 전송할 것이다.
RAID 제어부(240)는 종속 인터페이스(SIF)를 통해 버스 인터페이스(BIF)에 연결된다. RAID 제어부(240)는 도 1의 종속 슬레이브 기능 블록(140)으로서 제공된다. RAID 제어부(240)는 복수의 아이디들을 포함하는 아이디 테이블(도 1 및 도 3의 IDT 참조)을 저장하는 내부 메모리(245)를 포함한다. RAID 제어부(240)는 종속 인터페이스(SIF)를 통해 버스 인터페이스(BIF)를 모니터링하고, 버스 인터페이스(BIF) 상 버스 아이디가 아이디 테이블에 존재하는지 여부를 감지한다. 램(220)이 읽기 요청에 응답하여 버스 아이디 및 읽기 요청에 해당하는 램 데이터를 메모리 제어부(210)에 전송할 때, RAID 제어부(240)는 해당 버스 아이디가 아이디 테이블 내에 존재하는지 여부를 판별할 것이다. 만약 그렇다면, RAID 제어부(240)는 해당 램 데이터를 캐치한다. 즉 종속 슬레이브 기능 블록(140, 도 1 참조)은 슬레이브 기능 블록(120, 도 1 참조)이 마스터 기능 블록(110, 도 1 참조)으로 전송하는 데이터를 캐치할 수 있다.
이후, RAID 제어부(240)는 버스 아이디의 값에 따라 커맨드되어 램 데이터를 처리할 것이다. RAID 제어부(240)는 램 데이터에 대한 패리티 비트들을 생성하고, 생성된 패리티 비트들을 내부 메모리(245)에 저장할 수 있다. 실시 예로서, RAID 제어부(240)는 RAID 5 또는 RAID 6에 따른 패리티 비트들을 생성하도록 구성된다.
도 5는 도 4의 내부 메모리(245)를 개념적으로 보여주는 도면이다.
도 5를 참조하면, 내부 메모리(245)는 복수의 저장 영역들(AREA1~AREA9)로 구분된다. 복수의 저장 영역들(AREA1~AREA9) 중 제 9 저장 영역(AREA9)은 아이디 테이블(도 1 및 도 3의 IDT 참조)을 저장한다.
RAID 제어부(240)는 버스 아이디의 값에 따른 커맨드를 수행할 것이다. 예를 들면, 버스 아이디는 다수의 비트들로 구성되고, 다수의 비트들 중 상위 비트들은 패리티 비트들의 생성을 지시할 수 있다. 다수의 비트들 중 하위 비트들에 의해 제 1 내지 제 8 저장 영역들(AREA1~AREA8) 중 어느 하나가 특정될 것이다. 버스 아이디의 하위 3개 비트들이 "000"라고 가정한다. 하위 3개 비트들 "000"에 의해 제 1 저장 영역(AREA1)이 특정될 수 있다. RAID 제어부(240)는 버스 아이디에 따라 램 데이터에 대한 패리티 비트들을 생성하고, 생성된 패리티 비트들을 제 1 저장 영역(AREA1)에 저장할 것이다. 버스 아이디의 하위 3개 비트들이 "001"이라고 가정한다. 하위 3개 비트들 "001"에 의해 제 2 저장 영역(AREA2)이 특정될 수 있다. RAID 제어부(240)는 버스 아이디에 따라 램 데이터에 대한 패리티 비트들을 생성하고, 생성된 패리티 비트들을 제 2 저장 영역(AREA2)에 저장할 것이다.
도 6은 도 4의 반도체 장치(200)의 동작 방법을 보여주는 순서도이다.
도 4 및 도 6을 참조하면, S210단계에서, RAID 제어부(240)는 종속 인터페이스(SIF)를 통해 버스 인터페이스(BIF)를 모니터링한다. S220단계에서, 메모리 제어부(210)는 프로세싱 유닛(205)의 제어에 응답하여 램(220)으로 읽기 요청과 함께 버스 아이디를 전송한다. S230단계에서, 램(220)은 메모리 제어부(210)로 읽기 요청에 대응하는 램 데이터, 그리고 버스 아이디를 전송한다. 메모리 제어부(210)는 수신된 램 데이터를 불휘발성 메모리(215)에 저장할 것이다. 실시 예로서, 불휘발성 메모리(215)는 복수의 메모리 영역들을 포함하고, 메모리 제어부(210)는 복수의 메모리 영역들에 램 데이터를 분산하여 저장할 수 있다.
S240단계에서, RAID 제어부(240)는 S230단계에서 램 데이터와 함께 전송되는 버스 아이디가 아이디 테이블(IDT) 내에 존재하는지 여부를 판별한다. 만약 존재한다면, S250단계가 수행된다. S250단계에서, RAID 제어부(240)는 해당 램 데이터를 캐치(catch)한다.
S260단계에서, RAID 제어부(240)는 램 데이터에 대한 패리티 비트들을 생성한다. S270단계에서, RAID 제어부(240)는 생성된 패리티 비트들을 제 1 내지 제 8 저장 영역들(AREA1~AREA8, 도 5 참조) 중 버스 아이디가 가리키는 저장 영역에 저장한다.
이후, 메모리 제어부(210)는 버스 아이디에 기초하여 다이렉트 인터페이스(DIF)를 통해 내부 메모리(245)에 저장된 패리티 비트들을 읽고, 읽어진 패리티 비트들을 불휘발성 메모리(215)에 프로그램할 것이다.
도 7은 도 1의 반도체 장치(100)의 또 다른 변형 실시 예(300)를 보여주는 블록도이다.
도 7을 참조하면, 반도체 장치(100)는 프로세싱 유닛(305), 메모리 제어부(310), 불휘발성 메모리(315), 램(320), 버스(330), 및 데이터 압축부(340)를 포함한다.
프로세싱 유닛(405)은 버스(430)에 연결되어, 외부의 호스트(미도시)로부터의 제어에 응답하여 반도체 장치(300)의 제반 동작을 제어한다.
메모리 제어부(310)는 제 1 버스 인터페이스(BIF1)를 통해 버스(330)에 연결되고, 메모리 인터페이스(MIF)를 통해 불휘발성 메모리(315)에 연결된다. 메모리 제어부(310)는 도 1의 마스터 기능 블록(110)으로서 제공된다. 메모리 제어부(310)는 프로세싱 유닛(305)의 제어에 따라 불휘발성 메모리(315)를 제어하도록 구성된다.
램(320)은 버스(330)에 연결된다. 램(320)은 도 1의 슬레이브 기능 블록(120)으로서 제공된다.
데이터 압축부(340)는 도 1의 종속 슬레이브 기능 블록(140)으로서 제공된다. 데이터 압축부(340)는 종속 인터페이스(SIF)를 통해 제 1 버스 인터페이스(BIF1)를 모니터링한다. 데이터 압축부(340)는 제 2 버스 인터페이스(BIF2)를 통해 버스(330)에 연결된다.
데이터 압축부(340)는 복수의 아이디들을 포함하는 아이디 테이블(도 1 및 도 3의 IDT 참조)을 저장하는 내부 메모리(345)를 포함한다. 데이터 압축부(340)는 종속 인터페이스(SIF)를 통해 제 1 버스 인터페이스(BIF)를 모니터링하고, 제 1 버스 인터페이스(BIF1) 상 버스 아이디가 아이디 테이블의 아이디들 중 어느 하나와 일치하는지 여부를 감지한다.
메모리 제어부(310)는 불휘발성 메모리(315)로부터 읽어진 데이터를 램 데이터로서 램(320)에 저장할 수 있다. 메모리 제어부(310)는 램(320)에 램 데이터를 저장하기 위한 요청(이하, 쓰기 요청) 및 버스 아이디를 램(320)에 전송할 것이다. 쓰기 요청 후에, 메모리 제어부(310)는 램 데이터 및 동일한 버스 아이디를 램(320)에 전송할 것이다. 이때, 데이터 압축부(340)는 램 데이터를 캐치할 수 있다.
실시 예로서, 램(320)이 프로세싱 유닛(305)의 동작 메모리로서 사용될 수 있다. 이때, 램(320)에 프로세싱 유닛(305)의 동작에 필요한 데이터를 로드하기 위해, 프로세싱 유닛(305)은 불휘발성 메모리(315)로부터 데이터를 읽고 읽어진 데이터를 램(320)에 임시 저장하도록 메모리 제어부(310)를 제어할 것이다. 예를 들면, 플래시 변환 레이어의 기능을 수행하기 위한 맵 테이블이 불휘발성 메모리(315)로부터 램(320)에 로드될 수 있다.
메모리 제어부(310)가 램 데이터 및 버스 아이디를 램(320)에 전송할 때, 데이터 압축부(340)는 해당 버스 아이디가 아이디 테이블의 아이디들 중 어느 하나와 일치하는지 여부를 판별할 것이다. 만약 그렇다면, 데이터 압축부(340)는 램 데이터를 캐치한다. 즉 종속 슬레이브 기능 블록(140, 도 1 참조)은 마스터 기능 블록(110, 도 1 참조)이 슬레이브 기능 블록(120, 도 1 참조)으로 전송하는 데이터를 캐치할 수 있다.
데이터 압축부(340)는 버스 아이디에 따라 커맨드되어 램 데이터를 처리할 것이다. 데이터 압축부(340)는 램 데이터를 압축하고, 압축된 램 데이터를 내부 메모리(345)의 특정 저장 영역에 저장할 것이다. 또는, 데이터 압축부는 램 데이터를 압축 해제(decompress)하고, 압축 해제된 램 데이터를 내부 메모리(345)의 특정 저장 영역에 저장할 것이다. 데이터 압축부(340)는 버스 아이디에 따라 압축 또는 압축 해제를 수행할 수 있다. 데이터 압축부(340)는 버스 아이디에 따라 압축 또는 압축 해제된 램 데이터를 내부 메모리(345)의 저장 영역들(도 5의 AREA1~AREA8 참조) 중 어느 하나에 저장할 수 있다. 메모리 제어부(310)는 램(320)과 통신하는 데이터를 식별하기 위해 사용하는 버스 아이디를 조절함으로써, 데이터 압축부(340)를 커맨드할 수 있다.
이후, 프로세싱 유닛(305)은 내부 메모리(345)의 처리된 데이터를 램(320)에 로드할 것이다. 메모리 제어부(310)가 램(320)에 저장한 램 데이터는 처리된 데이터로 치환될 것이다. 데이터 압축부(340)는 제 2 버스 인터페이스(BIF2)를 통해 처리된 데이터를 램(320)에 전송할 것이다. 예를 들면, 불휘발성 메모리(315)에 저장된 데이터가 외부 호스트로 출력될 때, 불휘발성 메모리(315)에 저장된 압축된 데이터는 램(320)으로 로드되고 로드된 데이터는 데이터 압축부(340)의 압축 해제된 데이터로 치환될 것이다. 압축 해제된 데이터가 외부 호스트에 제공될 것이다. 예를 들면, 플래시 변환 레이어의 기능을 수행하기 위한 맵 테이블이 불휘발성 메모리(315)로부터 램(320)에 로드될 때, 불휘발성 메모리(315)의 압축 해제된 데이터가 램(320)으로 로드되고, 로드된 데이터는 데이터 압축부(340)의 압축된 데이터로 치환될 것이다. 이러한 경우 맵 테이블이 저장되는 데에 램(320) 내 적은 저장 공간이 요구된다.
도 8은 도 7의 반도체 장치(300)의 동작 방법을 보여주는 순서도이다.
도 7 및 도 8을 참조하면, S310단계에서, 데이터 압축부(340)는 종속 인터페이스(SIF)를 통해 제 1 버스 인터페이스(BIF1)를 모니터링한다. S320단계에서, 메모리 제어부(310)는 프로세싱 유닛(305)의 제어에 응답하여 램(320)으로 쓰기 요청과 버스 아이디를 전송한다. S330단계에서, 메모리 제어부(310)는 쓰기 요청에 대응하는 램 데이터, 그리고 버스 아이디를 램(320)에 전송한다. 램(320)은 메모리 제어부(310)로부터 수신된 데이터가 쓰기 요청에 해당함을 동일한 버스 아이디에 근거하여 인지하고, 램 데이터를 저장할 것이다.
S340단계에서, 데이터 압축부(340)는 S330단계에서 램 데이터와 함께 전송되는 버스 아이디가 아이디 테이블(IDT, 도 3 참조) 내에 존재하는지 여부를 판별한다. 만약 존재한다면, S350단계가 수행된다. S350단계에서, 데이터 압축부(340)는 해당 램 데이터를 캐치한다.
이후, 버스 아이디에 따라 데이터 압축부(340)가 커맨드된다.
S360단계에서, 데이터 압축부(340)는 버스 아이디에 따라 램 데이터를 압축 또는 압축 해제할 것이다. 예를 들면, 버스 아이디는 다수의 비트들로 구성되고 다수의 비트들 중 상위 비트들에 의해 램 데이터를 압축할지 또는 램 데이터를 압축 해제할지 여부가 결정될 것이다.
S370단계에서, 데이터 압축부(340)는 압축 또는 압축 해제된 데이터를 내부 메모리(345) 내 버스 아이디가 가리키는 저장 영역에 저장한다. 예를 들면, 버스 아이디의 다수의 비트들 중 하위 3개 비트들에 따라, 내부 메모리(345)의 제 1 내지 제 8 저장 영역들(AREA1~AREA8) 중 어느 하나가 선택되고, 선택된 저장 영역에 압축 또는 압축 해제된 데이터가 저장될 것이다.
이후, 압축 또는 압축 해제된 데이터는 제 2 버스 인터페이스(BIF2)를 통해 램(320)에 제공될 것이다.
이 밖에도, 도 1의 종속 슬레이브 기능 블록(140)은 다양한 실시 예들로 변형될 수 있음이 이해될 것이다. 예를 들면, 도 7의 반도체 장치(300)는 에러 정정 코드에 따라 데이터를 정정하기 위한 에러 정정 블록을 포함하고, 그러한 에러 정정 블록은 데이터 압축부(340, 도 7 참조)와 마찬가지로 도 1의 종속 슬레이브 기능 블록(140)으로서 제공될 수 있다. 에러 정정 블록은 메모리 제어부(310, 도 7 참조)가 램(320, 도 7 참조)에 전송하는 데이터를 버스 아이디에 기반하여 캐치할 수 있다. 그리고, 버스 아이디에 기반하여, 에러 정정 블록은 캐치된 데이터에 대한 에러 정정을 수행하고 정정된 데이터를 내부 메모리에 저장할 것이다. 이후 정정된 데이터가 버스 인터페이스(BIF2, 도 7 참조)를 통해 램(320)에 제공될 수 있다. 에러 정정 블록은 램(320)이 메모리 제어부(310)에 전송하는 데이터를 버스 아이디에 기반하여 캐치할 수 있다. 그리고, 버스 아이디에 기반하여, 에러 정정 블록은 캐치된 데이터에 에러 정정을 위한 패리티 비트들을 부가하고 처리된 데이터를 내부 메모리에 저장할 것이다. 이후 메모리 제어부(310)는 예를 들면 다이렉트 인터페이스(DIF, 도 4 참조)를 통해 에러 정정 블록으로부터 처리된 데이터를 읽고, 처리된 데이터를 불휘발성 메모리(315)에 프로그램할 것이다.
본 발명의 실시 예에 따르면, 버스 상에서 통신되는 데이터를 식별하기 위해 기능 블록들 간 교환되는 버스 아이디에 기반하여, 종속 슬레이브 기능 블록은 해당 데이터를 캐치할 수 있다. 나아가, 버스 아이디에 기반하여 종속 슬레이브 기능 블록이 커맨드될 수 있다. 이에 따라, 종속 슬레이브 기능 블록에 데이터를 제공하기 위한 별도의 프로세스, 그리고 종속 슬레이브 기능 블록을 커맨드하기 위한 별도의 프로세스는 요구되지 않는다. 따라서, 향상된 동작 속도를 갖는 반도체 장치가 제공된다.
본 발명의 상세한 설명에서는 구체적인 실시 예에 관하여 설명하였으나, 본 발명의 범위와 기술적 사상에서 벗어나지 않는 한도 내에서 다양한 변경이 가능하다. 그러므로 본 발명의 범위는 상술한 실시 예에 국한되어 정해져서는 안되며 후술하는 특허청구범위뿐만 아니라 이 발명의 특허청구범위와 균등한 것들에 의해 정해져야 한다.
110: 마스터 기능 블록
120: 슬레이브 기능 블록
140: 종속 슬레이브 기능 블록
210, 310: 메모리 제어부
215, 315: 불휘발성 메모리
220, 320: 램
240: RAID 제어부
340: 데이터 압축부
BIF: 버스 인터페이스
SIF: 종속 인터페이스
DIF: 다이렉트 인터페이스
120: 슬레이브 기능 블록
140: 종속 슬레이브 기능 블록
210, 310: 메모리 제어부
215, 315: 불휘발성 메모리
220, 320: 램
240: RAID 제어부
340: 데이터 압축부
BIF: 버스 인터페이스
SIF: 종속 인터페이스
DIF: 다이렉트 인터페이스
Claims (19)
- 버스(Bus);
상기 버스에 연결되는 슬레이브 기능 블록;
버스 인터페이스를 통해 상기 버스에 연결되며, 상기 버스 인터페이스 및 상기 버스를 통해 상기 슬레이브 기능 블록에 요청(request)을 전송할 때 상기 요청과 함께 버스 아이디를 상기 슬레이브 기능 블록에 제공하도록 구성되는 마스터 기능 블록; 및
상기 버스 인터페이스를 모니터링하는 종속 슬레이브 기능 블록을 포함하되,
상기 마스터 기능 블록과 상기 슬레이브 기능 블록은 상기 요청에 대응하는 데이터를 통신할 때, 상기 데이터와 함께 상기 버스 아이디를 전송하도록 구성되고,
상기 종속 슬레이브 기능 블록은 상기 버스 인터페이스 상에서 통신되는 상기 버스 아이디가 복수의 아이디들 중 어느 하나와 일치할 때, 상기 버스 아이디와 함께 통신되는 상기 데이터를 캐치하도록 구성되는 반도체 장치. - 제 1 항에 있어서,
상기 종속 슬레이브 기능 블록은 상기 복수의 아이디들을 저장하는 동작 메모리를 포함하는 반도체 장치. - 제 1 항에 있어서,
상기 종속 슬레이브 기능 블록은 상기 버스 아이디의 값에 따라 커맨드되어 상기 캐치된 데이터를 처리하는 반도체 장치. - 제 3 항에 있어서,
상기 종속 슬레이브 기능 블록은 복수의 저장 영역들을 갖는 내부 메모리를 포함하며,
상기 종속 슬레이브 기능 블록은 상기 복수의 저장 영역들 중 상기 버스 아이디의 값에 따라 정해지는 저장 영역에 상기 처리된 데이터를 저장하는 반도체 장치. - 제 4 항에 있어서,
상기 마스터 기능 블록은 상기 버스 아이디에 기반하여 상기 종속 슬레이브 기능 블록에 저장된 상기 처리된 데이터를 읽는 반도체 장치. - 제 1 항에 있어서,
상기 슬레이브 기능 블록은 램(Random Access Memory, RAM)이고,
상기 마스터 기능 블록은 불휘발성 메모리와 연결된 메모리 제어부이고,
상기 종속 슬레이브 기능 블록은 RAID 제어부인 반도체 장치. - 제 6 항에 있어서,
상기 요청은 상기 램에 저장된 상기 데이터에 대한 읽기 요청이고,
상기 메모리 제어부는 상기 읽기 요청과 함께 상기 버스 아이디를 상기 램에 전송하고,
상기 램은 상기 읽기 요청에 응답하여 상기 데이터를 상기 메모리 제어부에 전송하되, 상기 데이터와 함께 상기 버스 아이디를 상기 메모리 제어부에 전송하는 반도체 장치. - 제 7 항에 있어서,
상기 RAID 제어부는 상기 데이터와 함께 전송되는 상기 버스 아이디를 상기 버스 인터페이스 상에서 감지하고, 상기 버스 아이디가 상기 복수의 아이디들 중 어느 하나와 일치할 때 상기 데이터를 캐치하고, 상기 캐치된 데이터를 처리하도록 구성되는 반도체 장치. - 제 8 항에 있어서,
상기 RAID 제어부는 제 1 저장 영역들 및 제 2 저장 영역을 갖는 내부 메모리를 포함하며,
상기 RAID 제어부는 상기 캐치된 데이터에 대한 패리티 비트들을 생성하고, 상기 패리티 비트들을 상기 제 1 저장 영역들 중 상기 버스 아이디의 값에 의해 정해지는 저장 영역에 저장하고,
상기 제 2 저장 영역은 상기 복수의 아이디들을 저장하는 반도체 장치. - 제 9 항에 있어서,
상기 메모리 제어부는 다이렉트 인터페이스를 통해 상기 RAID 제어부에 연결되며,
상기 메모리 제어부는 상기 램으로부터 제공된 상기 데이터를 상기 불휘발성 메모리에 저장하되, 상기 다이렉트 인터페이스를 통해 상기 패리티 비트들을 읽고 상기 패리티 비트들을 상기 불휘발성 메모리에 저장하는 반도체 장치. - 제 1 항에 있어서,
상기 슬레이브 기능 블록은 램이고,
상기 마스터 기능 블록은 불휘발성 메모리와 연결된 메모리 제어부이고,
상기 종속 슬레이브 기능 블록은 데이터 압축부인 반도체 장치. - 제 11 항에 있어서,
상기 메모리 제어부는 상기 램에 상기 요청과 함께 상기 버스 아이디를 제공하고,
상기 요청 이후 상기 메모리 제어부와 상기 램 사이에서 상기 데이터가 통신될 때 상기 데이터와 함께 상기 버스 아이디가 전송되고,
상기 데이터 압축부는 상기 데이터와 함께 전송되는 상기 버스 아이디를 상기 버스 인터페이스 상에서 감지하고, 상기 버스 아이디가 상기 복수의 아이디들 중 어느 하나와 일치할 때 상기 데이터를 캐치하고, 상기 캐치된 데이터를 처리하도록 구성되는 반도체 장치. - 제 12 항에 있어서,
상기 데이터 압축부는 상기 버스 아이디의 비트들 중 제 1 비트들에 따라 상기 캐치된 데이터를 압축하거나 상기 캐치된 데이터를 압축 해제하는 반도체 장치. - 제 12 항에 있어서,
상기 데이터 압축부는 제 1 저장 영역들 및 제 2 저장 영역을 갖는 내부 메모리를 포함하며,
상기 데이터 압축부는 상기 처리된 데이터를 상기 버스 아이디의 비트들 중 제 2 비트들에 따라 상기 제 1 저장 영역들 중 어느 하나에 저장하고,
상기 제 2 저장 영역은 상기 복수의 아이디들을 저장하는 반도체 장치. - 제 14 항에 있어서,
상기 버스에 연결되는 프로세싱 유닛을 더 포함하되,
상기 프로세싱 유닛은 상기 버스를 통해 상기 데이터 압축부로부터 상기 램으로 상기 처리된 데이터를 로드하는 반도체 장치. - 버스 인터페이스를 통해 버스에 연결되는 마스터 기능 블록을 포함하는 반도체 장치의 동작 방법에 있어서:
상기 마스터 기능 블록으로부터 상기 버스 인터페이스 및 상기 버스를 통해 슬레이브 기능 블록에 요청을 전송할 때, 상기 요청과 함께 버스 아이디를 상기 슬레이브 기능 블록에 제공하는 단계;
상기 버스 아이디가 제공된 후에, 상기 마스터 기능 블록과 상기 슬레이브 기능 블록 사이에서 상기 요청에 대응하는 데이터가 통신될 때 상기 데이터와 함께 상기 버스 아이디를 전송하는 단계;
상기 버스 인터페이스를 모니터링하는 단계; 및
상기 버스 인터페이스 상에서 통신되는 상기 버스 아이디가 복수의 아이디들 중 어느 하나와 일치할 때, 상기 데이터를 캐치하는 단계를 포함하는 동작 방법. - 제 16 항에 있어서,
상기 캐치된 데이터를 상기 버스 아이디의 값에 따라 처리하는 단계를 더 포함하는 동작 방법. - 제 17 항에 있어서,
상기 반도체 장치는 복수의 저장 영역들을 포함하며,
상기 처리하는 단계는, 상기 복수의 저장 영역들 중 상기 버스 아이디의 값에 따라 정해지는 저장 영역에 상기 처리된 데이터를 저장하는 단계를 포함하는 동작 방법. - 제 16 항에 있어서,
상기 복수의 아이디들을 저장하는 단계를 더 포함하는 동작 방법.
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020150029816A KR102262550B1 (ko) | 2015-03-03 | 2015-03-03 | 복수의 기능 블록들을 포함하는 반도체 장치 및 그것의 동작 방법 |
US14/800,362 US10108570B2 (en) | 2015-03-03 | 2015-07-15 | Semiconductor device including plurality of function blocks and operating method thereof |
CN201510474746.0A CN105938465B (zh) | 2015-03-03 | 2015-08-05 | 包括多个功能模块的半导体器件及其操作方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020150029816A KR102262550B1 (ko) | 2015-03-03 | 2015-03-03 | 복수의 기능 블록들을 포함하는 반도체 장치 및 그것의 동작 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20160107400A true KR20160107400A (ko) | 2016-09-19 |
KR102262550B1 KR102262550B1 (ko) | 2021-06-10 |
Family
ID=56849880
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020150029816A KR102262550B1 (ko) | 2015-03-03 | 2015-03-03 | 복수의 기능 블록들을 포함하는 반도체 장치 및 그것의 동작 방법 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10108570B2 (ko) |
KR (1) | KR102262550B1 (ko) |
CN (1) | CN105938465B (ko) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11301371B2 (en) * | 2019-09-16 | 2022-04-12 | SK Hynix Inc. | Memory controller and operating method thereof |
KR20220125897A (ko) * | 2021-03-05 | 2022-09-15 | 삼성전자주식회사 | 시스템 온 칩 및 시스템 온 칩에 포함된 연결 버스 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030061293A1 (en) * | 1998-08-06 | 2003-03-27 | Guenter Steindl | Active publishing method and system |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5533200A (en) * | 1994-03-18 | 1996-07-02 | Intel Corporation | Method and apparatus for transmission of signals over a shared line |
JP3092558B2 (ja) * | 1997-09-16 | 2000-09-25 | 日本電気株式会社 | 半導体集積回路装置 |
KR100285215B1 (ko) | 1997-11-27 | 2001-04-02 | 서평원 | 보드간 데이터 송수신 방법 및 그 장치 |
GB2497314A (en) * | 2011-12-06 | 2013-06-12 | St Microelectronics Grenoble 2 | Independent blocks to control independent busses or a single combined bus |
-
2015
- 2015-03-03 KR KR1020150029816A patent/KR102262550B1/ko active IP Right Grant
- 2015-07-15 US US14/800,362 patent/US10108570B2/en active Active
- 2015-08-05 CN CN201510474746.0A patent/CN105938465B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030061293A1 (en) * | 1998-08-06 | 2003-03-27 | Guenter Steindl | Active publishing method and system |
Also Published As
Publication number | Publication date |
---|---|
US20160259744A1 (en) | 2016-09-08 |
US10108570B2 (en) | 2018-10-23 |
KR102262550B1 (ko) | 2021-06-10 |
CN105938465A (zh) | 2016-09-14 |
CN105938465B (zh) | 2020-04-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101937724B (zh) | 用于执行拷贝回存操作的方法以及闪存存储设备 | |
US20200081780A1 (en) | Data storage device and parity code processing method thereof | |
CN102750559B (zh) | 信息处理装置和信息处理方法 | |
US9336081B2 (en) | Data writing and reading method, and memory controller and memory storage apparatus using the same for improving reliability of data access | |
KR101919990B1 (ko) | 데이터 처리 시스템 및 그것의 에러 정정 코드 처리 방법 | |
KR102374113B1 (ko) | 메모리 장치의 동작 방법, 이를 이용한 메모리 장치 및 그 장치를 포함하는 메모리 시스템 | |
KR20120064462A (ko) | 메모리 컨트롤러, 이의 오류정정 방법, 및 이를 포함하는 메모리 시스템 | |
US20130198587A1 (en) | Memory buffer performing error correction coding (ecc) | |
US9575692B2 (en) | Cache control device having fault-tolerant function and method of operating the same | |
JP5076488B2 (ja) | 情報処理装置、履歴管理方法、履歴管理プログラム | |
KR102319402B1 (ko) | 복수의 채널들을 통해 반도체 메모리 장치들을 제어하는 메모리 시스템 | |
KR102341390B1 (ko) | 반도체 메모리 장치와 연결된 컨트롤러 및 그것의 동작 방법 | |
US10733094B2 (en) | Memory system, controller, method of operating a controller, and method of operating a memory system for processing big data by using compression and decompression | |
US20150248322A1 (en) | Memory controller and memory system | |
CN105208135A (zh) | 一种文件传输方法和设备 | |
US8595594B2 (en) | Data processing method, memory controller, and memory storage device | |
KR102262550B1 (ko) | 복수의 기능 블록들을 포함하는 반도체 장치 및 그것의 동작 방법 | |
US11645149B2 (en) | Information processing system, storage device, and host | |
KR102468721B1 (ko) | 메모리 시스템 및 그의 동작 방법 | |
US8291270B2 (en) | Request processing device, request processing system, and access testing method | |
CN105354107A (zh) | NOR Flash的数据传输方法及系统 | |
US10521133B2 (en) | Method and apparatus for real-time blank page detection in data transmission | |
CN114116530B (zh) | 存储控制方法及装置、数据处理方法及装置以及存储介质 | |
WO2024169645A1 (zh) | 一种内存纠错方法、系统及设备 | |
US20230087517A1 (en) | Error detection in memory system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |