KR20070099373A - 반도체 장치 사이의 단일형 병렬데이터 인터페이스 방법,기록매체 및 반도체 장치 - Google Patents
반도체 장치 사이의 단일형 병렬데이터 인터페이스 방법,기록매체 및 반도체 장치 Download PDFInfo
- Publication number
- KR20070099373A KR20070099373A KR1020060030751A KR20060030751A KR20070099373A KR 20070099373 A KR20070099373 A KR 20070099373A KR 1020060030751 A KR1020060030751 A KR 1020060030751A KR 20060030751 A KR20060030751 A KR 20060030751A KR 20070099373 A KR20070099373 A KR 20070099373A
- Authority
- KR
- South Korea
- Prior art keywords
- value
- parallel data
- bits
- logic level
- balance code
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 51
- 239000004065 semiconductor Substances 0.000 title claims abstract description 34
- 230000005540 biological transmission Effects 0.000 claims description 10
- 238000012423 maintenance Methods 0.000 claims description 2
- 230000004044 response Effects 0.000 claims description 2
- 230000008859 change Effects 0.000 abstract description 13
- 238000013500 data storage Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 5
- 230000003071 parasitic effect Effects 0.000 description 4
- 230000009467 reduction Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 230000009897 systematic effect Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 230000008054 signal transmission Effects 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1006—Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
-
- 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
-
- 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
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/401—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
- G11C11/406—Management or control of the refreshing or charge-regeneration cycles
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/02—Arrangements for writing information into, or reading information out from, a digital store with means for avoiding parasitic signals
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1048—Data bus control circuits, e.g. precharging, presetting, equalising
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/401—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
- G11C11/406—Management or control of the refreshing or charge-regeneration cycles
- G11C11/40611—External triggering or timing of internal or partially internal refresh operations, e.g. auto-refresh or CAS-before-RAS triggered refresh
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Computer Hardware Design (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Dc Digital Transmission (AREA)
- Error Detection And Correction (AREA)
Abstract
반도체 장치 사이의 단일형 병렬데이터 인터페이스 방법, 기록매체 및 반도체 장치가 개시된다. 상기 인터페이스 방법은 다수의 제1 병렬데이터 중에서 제1로직 레벨 값을 갖는 비트의 개수와 제1기준값과 비교하여 상기 제1 병렬데이터의 레벨 값들을 반전 또는 유지시키고 그 결과에 대응하는 제1 상태값을 설정하고, 상기 반전 또는 유지된 병렬데이터(제2병렬데이터) 및 상기 제1 상태값 중에서 상기 제1로직 값을 갖는 비트의 개수와 제2기준값과 비교하여 제2 상태값을 설정하고, 상기 제2병렬데이터, 상기 제1 상태 값, 및 상기 제2 상태 값 중에서 상기 제1로직 레벨 값을 갖는 비트의 개수와 제3기준값과 비교한 결과에 기초하여 밸런스코드를 설정하며, 상기 설정된 밸런스코드와 기준코드와 비교한 결과에 기초하여 상기 제1 병렬데이터를 복원한다.
단일형 병렬 인터페이스, 데이터 버스 인버전(Data Bus Inversion)
Description
본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 간단한 설명이 제공된다.
도 1은 일반적인 단일형 병렬 인터페이스 시스템을 나타내는 개략도이다.
도 2는 종래 8B/10B code방식의 인코딩 방법을 나타내는 플로차트이다.
도 3은 종래의 데이터 버스 인버전 DC방식에 의한 8비트 병렬데이터의 인코딩 방법을 나타내는 플로챠트이다.
도 4는 본 발명에 따른 단일형 병렬 데이터 밸런스 코딩 방법을 나타내는 플로챠트이다.
도 5는 본 발명의 일 실시 예에 따른 단일형 8비트 병렬 데이터 밸런스 코딩 방법을 나타내는 플로챠트이다.
도 6은 본 발명의 일 실시 예에 따른 단일형 병렬 데이터 밸런스코드를 디코딩 하는 방법을 나타내는 플로챠트이다.
도 7은 본 발명에 따른 단일형 병렬데이터 인터페이스 시스템을 나타내는 구 성도이다.
도 8은 도 7에 도시된 인코딩 회로의 일 구현예를 나타낸다.
도 9는 도 7에 도시된 디코딩 회로의 일 구현예를 나타낸다.
도 10은 본 발명의 일 실시 예에 따른 밸런스코딩을 적용시켰을 때 노이즈 감소로 인한 지터의 변화를 나타낸다.
본 발명은 반도체 장치 사이의 단일형 병렬데이터 인터페이스 방법, 기록매체 및 반도체 장치에 관한 것으로, 보다 상세하게는 데이터 버스 인버전 디씨(Data Bus Inversion DC)를 이용한 밸런스코드(balance code)를 설정하여 단일형 병렬데이터 인터페이스 시스템에서 발생하는 노이즈(Noise)를 줄이는 방법, 기록매체, 및 반도체 장치에 관한 것이다.
병렬데이터 인터페이스를 위하여 단일형 병렬 전송방법을 사용하는 반도체 장치(예컨대, DRAM)의 병렬 입출력 회로에는 기생 인덕턴스에 기인한 노이즈가 발생한다.
도 1은 일반적인 단일형 병렬 인터페이스 시스템(10)을 나타내는 개략도이다. 도 1을 참조하면, 상기 인터페이스 시스템(10)은 다수의 송신 드라이버들(D1 내지 Dn)을 구비하는 송신부(20), 다수의 전송라인들(Line1 내지 LineN), 및 다수의 증폭기들(A1 내지 An)과 종단저항들(R1 내지 Rn)을 구비하는 수신부(30)를 구비 한다. 상기 드라이버들(D1 내지 Dn) 각각은 인터버(Inverter) 형태의 푸쉬 풀(Push-Pull) 드라이버가 될 수 있다. 도 1에 도시된 단일형 병렬 인터페이스 시스템(10)의 종단저항들(R1 내지 Rn)은 공급 전원(VDD) 노드에 접속된다. 이 경우, 상기 드라이버들(D1 내지 Dn) 각각이 인버터 형태라면 입력데이터 값(예컨대, DQ0)이 하이(high) 레벨(1)이면 전송라인(예컨대, Line1)에 전류가 흐르지 않으나, 상기 입력데이터 값이 로우(low) 레벨(0)이면 상기 전송라인("채널"이라고도 함)에 전류가 흐른다. 만약, 종단저항들(R1 내지 Rn)은 공급 전원(VSS) 노드에 접속되는 시스템이라면, 입력 데이터 값(예컨대, DQ0)이 로우 레벨(0)일 때 전송라인(예컨대, Line1)에 전류가 흐르지 않으나, 상기 입력데이터 값이 하이 레벨(1)일 때 상기 전송라인("채널"이라고도 함)에 전류가 흐른다. 따라서 병렬데이터(예컨대, DQ0 내지 DQN-1)값에 따라 상기 드라이버들(D1 내지 Dn)이 소비하는 총 전류량이 변하게 된다.
칩 내부 전원 노드(VDDQ, VSSQ)와 보드(Board)의 공급전원(VDD, VSS) 사이에는 기생 인덕턴스가 존재하므로 상기 기생 인턱턴스에 흐르는 전류 변화는 상기 칩 내부 전원 노드(VDDQ, VSSQ)에 노이즈(예컨대, 지터(Jitter), 전압노이즈, Reference fluctuation)를 발생시킨다. 상기 노이즈는 상기 채널에 흐르는 전류의 변화량에 비례한다. 상기 노이즈는 신호의 전압 마진(voltage margin)과 시간 마진을 감소시켜 전송 동작 속도(전송주파수)를 제약시킨다.
상기 노이즈를 감소시키기 위해서는 항상 일정한 전류를 소비하는 차동신호전송방법(Differential signaling)을 사용해야 한다. 그러나 상기 차동신호전송방 법은 단일형 전송방법(single ended)에 비하여 2배의 핀(pin)수가 필요하다는 단점이 있다. 상기 노이즈를 줄이기 위한 다른 방법으로는 DC 밸런스(balance) 방식(예컨대, 8B/10B code)이 있다. 상기 8B/10B code방식은 8비트의 병렬데이터에 2비트의 데이터를 추가하여 항상 0과 1의 개수가 비슷하도록 코딩(coding)한다. 그 결과 DC 밸런스 코드 값은 0과 1의 개수가 최대 2개 차이가 나게 되어 노이즈가 4분의 1로 감소한다.
도 2는 종래 8B/10B code방식의 인코딩 방법을 나타내는 플로차트이다. 도 2를 참조하면, 8비트의 병렬데이터를 수신한다(S210). 상기 수신된 8비트의 병렬데이터 중에서 0과 1의 개수를 계산한다(S220). 상기 계산결과에 기초하여 0과 1의 개수가 소정의 값만큼 차이가 나도록 상기 수신된 병렬데이터를 변환한다(S230).
그러나 상기 8B/10B code방식을 구현하기 위해서는 롬(ROM)을 이용하거나 조합 논리(Combinational logic)회로를 사용해야 하므로 회로의 면적이 증가한다. 또한 인코딩(encoding)을 하기 전의 8비트의 병렬데이터는 평균 4IDQ(여기서 IDQ는 입력 1비트에 의하여 상기 채널에 전류가 흐를 때 소모되는 전류량)의 전류를 소모하나 인코딩(encoding) 후에는 5IDQ의 전류를 소모한다는 단점이 있다.
상기 8B/10B code방식의 단점을 보완하기 위해서 체계적(Systematic)방식을 사용하면 인코딩과 디코딩의 복잡도와 회로면적을 감소시킬 수 있다. 그 한 방법으로 데이터 버스 인버전 DC가 있다.
도 3은 종래의 데이터 버스 인버전 DC방식에 의한 8비트 병렬데이터의 인코딩 방법을 나타내는 플로챠트이다. 도 3을 참조하면, 8비트의 병렬데이터를 수신한 다(S310). 상기 수신된 8비트의 병렬데이터 중에서 0과 1의 개수를 계산한다(S320). 상기 계산된 0의 개수가 소정의 값(k; 예컨대 k ≥4)보다 크거나 같으면 상기 수신된 병렬데이터를 반전시키고 이에 대응하는 제1 상태값(flag; 예컨대, 제1상태값을 하이 레벨로 설정한다)을 설정한다(S340). 상기 계산된 0의 개수가 상기 소정의 값(k; 예컨대, k <4 )보다 작으면 상기 수신된 병렬데이터를 유지시키고, 이에 대응하는 제1 상태값(예컨대, 제1 상태값을 로우 레벨로 설정한다)을 설정한다(S350).
상기 데이터 버스 인버전 DC방식은 그 방법을 구현하기가 간단하고 평균 전류 소모가 2IDQ로 감소하는 장점이 있다. 그러나 0의 개수가 0부터 4까지 변할 수 있어 최대 4IDQ의 전류 변화가 발생하여 인코딩 전보다 VDDQ와 VSSQ 노드에 발생하는 노이즈가 2분의 1만 감소하는 단점이 있다. 따라서 이러한 단점을 극복하기 위하여 전류의 변화량을 감소시켜 상기 VDDQ와 VSSQ 노드에 발생하는 노이즈를 최소로 줄이기 위한 방법이 필요하다.
따라서 본 발명이 이루고자 하는 기술적인 과제는 데이터 버스 인버전 디씨(Data Bus Inversion DC)를 이용한 밸런스코드(balance)코드를 구현하여 채널에 흐르는 전류변화량을 최소로 줄임으로써 단일형 병렬데이터 인터페이스 시스템에서 발생하는 노이즈(Noise)를 줄이는 방법, 기록매체, 및 반도체 장치를 제공하는 것이다.
상기 기술적 과제를 달성하기 위한 본 발명에 따른 반도체 장치 사이의 단일형(Single ended) 병렬데이터 인터페이스 방법은 병렬데이터 송신을 위한 인코딩 단계 및 상기 병렬데이터 수신을 위한 디코딩 단계를 구비한다. 상기 인코딩 단계는 데이터 버스 인버전 코딩 및 제1 상태값 설정단계, 제2 상태값 설정단계, 및 밸러스코딩(balance coding) 단계를 구비한다.
상기 데이터 버스 인버전 코딩 및 제1 상태값 설정단계는 N비트의 제1 병렬데이터 중에서 제1로직 레벨 값을 갖는 비트의 개수를 제1 기준값과 비교한 결과에 기초하여, 상기 제1 병렬데이터의 레벨 값들을 반전 또는 유지시킨 제2 병렬 데이터 및 그 결과에 대응하는 제1 상태 값을 설정한다.
상기 제2 상태값 설정단계는 상기 제2 병렬데이터의 레벨 값들과 상기 제 1상태값 중에서 상기 제1로직 레벨 값을 갖는 비트의 개수를 제2기준값과 비교한 결과에 기초하여, 제2 상태 값을 설정한다.
상기 밸런스코딩 단계는 상기 제2 병렬데이터의 레벨 값들, 상기 제1 상태 값, 및 상기 제2 상태 값으로 구성된 제1 밸런스코드에서 상기 제1로직 레벨 값을 갖는 비트의 개수와 제3기준값과 비교한 결과에 기초하여, 상기 제1 밸런스코드를 출력하거나 상기 제2 병렬 데이터를 변환시킨 제2 밸런스코드를 출력한다.
상기 데이터 버스 인버전 코딩 및 제1 상태값 설정단계는 상기 제1로직 레벨 값을 갖는 비트의 개수가 제1 기준값보다 작은 경우에 상기 제1 병렬데이터의 레벨 값들을 유지시키고, 상기 제1 상태 값을 상기 제1로직 레벨 값으로 설정할 수 있다. 반면에 상기 제1로직 레벨 값을 갖는 비트의 개수가 제1 기준값보다 크거나 같 은 경우에 상기 제1 병렬데이터의 레벨 값들을 모두 반전시키고, 상기 제1 상태 값을 제2로직 레벨 값으로 설정할 수 있다.
상기 제2 상태값 설정단계는 상기 제2 병렬데이터의 레벨 값들과 상기 제1 상태 값 중에서 상기 제1로직 레벨 값을 갖는 비트의 개수가 상기 제2 기준값보다 작거나 같은 경우에 상기 제2 상태 값을 상기 제1로직 레벨 값으로 설정할 수 있다. 반면에 상기 제2 기준값보다 큰 경우에 상기 제2 상태 값을 제2로직 레벨 값으로 설정할 수 있다.
상기 밸러스코딩 단계는 상기 제1 밸런스코드에서 상기 제1로직 레벨 값을 갖는 비트의 개수가 상기 제3 기준값보다 큰 경우 상기 제1 밸런스코드를 설정할 수 있다. 반면에 제3 기준값보다 같거나 작은 경우에는 상기 제1 밸런스코드의 상기 제2 병렬데이터가 소정의 개수의 상기 제1로직 레벨 값들을 갖도록 변환시킨다.
상기 디코딩 단계는 상기 밸러스코딩 단계에서 설정된 밸런스코드와 소정의 패턴(pattern)을 가지는 기준코드와 비교한 결과에 기초하여, 상기 설정된 밸런스코드로부터 상기 제1 병렬데이터를 복원한다.
상기 디코딩 단계는 상기 밸런스코딩 단계에서 설정된 밸런스코드가 상기 기준코드와 일치하지 않는 경우 상기 제1 상태값에 기초하여 상기 설정된 밸런스코드로부터 상기 제1 병렬데이터를 복원할 수 있다. 반면에 상기 기준코드와 일치하는 경우에는 상기 설정된 밸런스코드 중에서 상기 밸런스코딩 단계에서 제1로직 레벨로 변환된 데이터 값들을 반전시킨 제3밸런스코드를 설정한 후, 상기 제1 상태값에 기초하여 상기 제3밸런스코드로부터 제1 병렬테이터를 복원할 수 있다.
상기 기술적 과제를 달성하기 위한 본 발명의 일 면에 따른 반도체 장치는 데이터 버스 반전 인코딩 회로, 인코딩 제어회로; 및 다수의 드라이버들을 구비한다.
상기 데이터 버스 반전 인코딩 회로는, N비트의 제1 병렬데이터를 수신하여, 상기 제1 병렬데이터의 레벨 값들 중에서 제1로직 레벨 값을 갖는 비트의 개수를 제1 기준값과 비교한 결과에 기초하여, 상기 제1 병렬데이터의 레벨 값들을 반전시키거나 유지시킨 제2 병렬데이터 및 상기 반전 여부에 대응하는 제1 상태 값을 출력한다.
상기 인코딩 제어회로는 상기 제2병렬데이터의 레벨 값들과 상기 제1 상태값 중에서 상기 제1로직 레벨 값을 가진 비트의 개수를 제2 기준값과 비교한 결과에 기초하여 제2 상태값을 출력하고, 상기 제2 병렬데이터의 레벨 값들, 상기 제1 상태 값, 및 상기 제2 상태 값으로 구성된 제1 밸런스코드에서 상기 제1로직 레벨 값을 갖는 비트의 개수와 제3 기준값과 비교한 결과에 기초하여, 상기 제1 밸런스코드를 출력하거나 상기 제2병렬 데이터를 변환시킨 제2 밸런스코드를 출력한다.
상기 다수의 드라이버들은 각각이 상기 인코딩 제어회로로부터 출력된 밸런스코드의 비트들을 수신하여 드라이빙(driving)한다.
상기 기술적 과제를 달성하기 위한 본 발명의 다른 일 면에 따른 반도체 장치는 N비트의 병렬 데이터가 M(>N)비트의 제1 밸런스코드로 인코딩된 데이터를 수신하기 위한 수신부를 구비하는 반도체 장치에 관한 것으로, 상기 디코딩 제어회로 및 데이터 버스 인버스 디코딩 회로를 구비한다.
상기 디코딩 제어회로는 상기 M 비트의 제1 밸런스코드를 수신하고, 상기 수신된 제1 밸런스코드 중 일부 혹은 전부를 소정의 패턴을 갖는 기준코드와 비교하고 그 비교결과에 기초하여 상기 제1 밸런스 코드를 유지하거나 변환한 제2 밸런스코드를 출력한다.
상기 데이터 버스 인버스 디코딩 회로는 상기 제2 밸런스 코드를 수신하고 상기 제2 밸런스코드의 제1 상태값에 기초하여 상기 제2 밸런스 코드 중 N비트의 데이터를 반전하거나 유지하여 출력한다.
상기 기술적 과제를 달성하기 위한 본 발명과 본 발명의 동작상의 이점 및 본 발명의 실시에 의하여 달성되는 목적을 충분히 이해하기 위해서는 본 발명의 바람직한 실시 예를 예시하는 첨부 도면 및 첨부 도면에 기재된 내용을 참조하여야만 한다. 이하, 첨부한 도면을 참조하여 본 발명의 바람직한 실시 예를 설명함으로써, 본 발명을 상세히 설명한다. 각 도면에 제시된 동일한 참조부호는 동일한 부재를 나타낸다.
도 4는 본 발명에 따른 단일형 병렬 데이터 밸런스 코딩 방법을 나타내는 플로챠트이다. 도 4을 참조하면, 다수 비트의 병렬데이터("제1병렬데이터"라 함) 중에서 데이터 값이 0과 1인 개수를 계산한다(S410). 상기 제1병렬데이터 중에서 제1 로직레벨의 개수(즉, 제1 로직 레벨의 가지는 비트수)가 제1기준값(Z)보다 크거나 같은 경우 상기 제1병렬데이터를 반전시키고, 이에 대응하는 제1 상태값(예컨대, 1)을 설정한다(S430). 상기 제1병렬데이터 중에서 제1로직레벨의 개수가 제1기준값(Z)보다 작은 경우에는 상기 제1병렬데이터를 유지시키고, 대응하는 제1 상태값 (예컨대, 0)을 설정한다(S440). 상기 단계들(S430 내지 S440)에서 설정된 병렬데이터를 제2병렬데이터라 한다. 본 명세서에서는, 제1 로직 레벨은 로우레벨(0)이고 제2 로직 레벨은 하이레벨(1)인 것으로 가정하여 기술하나, 이에 한정되는 것은 아니다.
상기 제2병렬데이터 및 이에 대응하는 제1 상태값 중에서 상기 제1로직레벨의 개수가 제2기준값(M)보다 큰 경우에는 상기 제2병렬데이터를 유지하고, 이에 대응하는 제2 상태값을 설정한다(S460). 상기 유지된 제2병렬데이터 및 이에 대응하는 제1 상태값과 제2 상태값을 전송한다(S491).
상기 제2병렬데이터 및 이에 대응하는 제1 상태값 중에서 상기 제1로직레벨의 개수가 상기 제2기준값(M)보다 작거나 같은 경우 대응하는 제2 상태값을 설정한다(S470).
상기 제2병렬데이터, 제1 상태값 및 상기 단계(S470)에서 설정된 제2 상태값 중에서 상기 제1로직 레벨 값을 갖는 비트의 개수가 제3기준값(K)보다 작거나 같은 경우에는 상기 제2병렬데이터가 상기 제1로직 레벨 값을 갖는 소정의 비트 수를 갖도록 변환한 후(S490), 변환된 병렬데이터, 제1 상태값 및 상기 단계(S470)에서 설정된 제2 상태값을 전송한다(S491).
상기 제2병렬데이터, 제1 상태값 및 상기 단계(S470)에서 설정된 제2 상태값 중에서 상기 제1로직 레벨 값을 갖는 비트의 개수가 제3기준값(K)보다 큰 경우에는 상기 제2병렬데이터, 제1 상태값 및 상기 단계(S470)에서 설정된 제2 상태값을 전송한다(S491).
도 5는 본 발명의 일 실시 예에 따른 단일형 8비트 병렬 데이터 밸런스 코딩 방법에 따른 코드 변화의 일 예를 나타내는 상태표이다. 도1 및 도 5를 참조하면, 도 1에 도시된 인터페이스 시스템(10)의 드라이버들(D1 내지 D1n)은 인버터 형태라 가정한다.
밸런스코딩 전의 제1상태표(510)는 DBI DC 변환된 8비트 병렬데이터와 대응하는 제1상태값들을 나타낸다. 상기 상태표(510)는 다음과 같이 설정된 것이다.
인코딩하기 위한 8비트의 제1병렬데이터 중에서 로우 레벨 값을 갖는 비트의 개수가 4보다 크거나 같은 경우 상기 제1병렬데이터를 반전시키고 대응하는 제1상태값을 하이 레벨 값으로 설정하고, 4보다 작은 경우 상기 제1병렬데이터를 유지시키고 대응하는 제1상태값을 로우 레벨로 설정한다. 상기 제1상태표(510)를 보면 DBI DC의 8비트 병렬데이터와 제1 상태값으로 구성된 표본형들(표본형1 내지 표본형9)에서 로우 레벨 값을 갖는 비트의 개수는 최소 0개에서 최대 4개까지 변화하게 된다. 따라서 채널에 흐르는 최대 전류 변화량은 4IDQ가 된다.
상기 제1상태표(510)에 얻어진 9개의 표본형을 밸런스코딩한 것이 본 발명에 따른 일 실시예에 해당하는 제2상태표(520)이다. 상기 제2상태표는 상기 밸런스코딩을 통하여 채널에 흐르는 전류 값의 최대 변화량을 2IDQ로 감소시키기 위하여 설정된 것이다. 상기 제2상태표는 다음과 같이 설정된 것이다.
상기 제1상태표(510)에서 설정된 DBI 8비트 병렬데이터와 제1 상태값 중에서 로우 레벨 값을 갖는 비트의 개수가 1보다 큰 경우에는 대응하는 제2 상태값을 하이 레벨 값으로 설정하고, 1보다 작거나 같은 경우에는 대응하는 제2 상태값을 로 우 레벨 값으로 설정한다(상기 제2상태표(520)의 제2 상태값에서 점선으로 표시된 부분이다).
상기 제2상태표의 표본형들(표본형2 내지 표본형9) 중에서 로우 레벨 값을 갖는 비트의 개수는 최소 2에서 최대 4까지 변화한다. 그러나 표본형1의 경우에는 DBI 8비트 병렬데이터와 대응하는 상기 제1 상태값, 및 제2 상태값 중에서 로우 레벨 값을 갖는 비트의 개수가 1개이다.
따라서 밸런스코딩을 통하여 채널에 흐르는 전류 값의 최대 변화량을 2IDQ로 감소시키기 위해서는 상기 표본형1의 경우 상기 DBI 8비트 병렬데이터를 변환시킬 필요가 있다. 상기 제2상태표(520)의 8비트 병렬데이터의 최하위 2비트(점선으로 표시된 부분)를 로우 레벨 값으로 변환시킨 것이다. 최하위 1비트만을 로우 레벨 값으로 변환시키는 경우에는 상기 표본형2와 동일한 형태로 밸런스코딩이 되기 때문에 다른 표본형들(표본형2 내지 표본형9)과 구별되게 하기 위해서 최하위 2비트를 변환시킨 것이다.
도 5에 표시된 본 발명의 일 실시예에 따른 밸런스코딩 방법에 의하면 로우 레벨 값을 갖는 비트의 개수가 항상 2내지 4가 되므로 평균 소비 전류가 약 3IDQ가 된다. 이는 도 2에 도시된 종래의 8B/10B code방식의 인코딩 방법의 경우에 평균 소비 전류가 5IDQ가 흐르는 것에 비하면 2IDQ가 감소한 것이다. 또한 본 발명의 일 실시예에 따른 밸런스코딩 방법에 의하면 인코딩 후에 최대 전류변화량은 약 2IDQ로서, 이는 도 2에 도시된 종래의 8B/10B code방식의 인코딩 후의 최대전류 변화량(약 2IDQ)과 비슷하나, 도 3에 도시된 종래의 데이터 버스 인버젼 DC 방식의 인 코딩 후의 최대전류 변화량(약 4IDQ)에 비해서는 훨씬 줄어든다. 도 1에 도시된 인터페이스 시스템(10)의 종단저항들(R1 내지 Rn)이 VSSQ 노드에 접속된다면 상기 밸러스 코드 값이 하이 레벨인 경우에 채널에 전류가 소모되므로 상술한 본 발명에 따른 밸런스코딩 방법 중에서 로우 레벨과 하이 레벨을 반대로 하여 전류 소모를 최소화하는 방법으로 밸런스코드를 구성한다.
도 6은 본 발명의 일 실시 예에 따른 단일형 병렬 데이터 밸런스코드를 디코딩 하는 방법을 나타내는 플로챠트이다. 도 6을 참조하면, 도 4에서 도시한 방법에 의하여 인코딩된 밸런스코드(병렬데이터, 제1상태값, 및 제2상태값)를 디코딩하기 위해 수신한다(S610). 상기 수신된 밸런스코드가 소정 패턴의 코드와 일치하는지 여부를 판단한다(S620).
상기 수신된 밸런스코드가 소정 패턴의 코드(이하 "기준코드"라 한다)와 일치하는 경우 상기 수신된 병렬데이터 중에서 밸런스코딩을 위해 인코딩시 변환된 데이터를 복원한다(S630). 상기 수신된 제1 상태값이 제1로직 레벨 값인지 여부를 판단한다(S640). 수신된 상기 대응하는 제1 상태값이 제1로직 레벨 값이면 상기 복원된 병렬데이터를 반전하여 출력하고(S650), 제1로직 레벨 값이 아니면 상기 복원된 병렬데이터를 유지하여 출력한다(S660).
상기 수신된 밸런스코드가 상기 기준코드와 일치하지 않는 경우는 상기 수신된 병렬데이터를 유지한다(S620). 수신된 상기 대응하는 제1 상태값이 제1로직 레벨 값이면 상기 유지된 병렬데이터를 반전하여 출력하고(S650), 제1로직 레벨 값이 아니면 상기 유지된 병렬데이터를 그대로 유지하여 출력한다(S660).
도 7은 본 발명에 따른 단일형 병렬데이터 인터페이스 시스템(700)을 나타내는 구성도이다. 도 7을 참조하면, 상기 시스템(700)은 송신측 반도체 장치(710)와 수신측 반도체 장치(720)를 구비한다. 송신측 반도체 장치(710)는 인코딩을 위한 송신부(800 및 714)와 디코딩을 위한 수신부(900)를 구비한다. 송신측 반도체 장치(710) 및 수신측 반도체 장치(720)는 각각 컨트롤러, DRAM, SRAM 등이 될 수 있다. 또한, 도 7에는 송신측 반도체 장치(710)에는 송신부(800 및 714)만이, 수신측 반도체 장치(720)에는 수신부(900)만이 도시되어 있으나, 데이터를 주고 받기 위하여, 각 반도체 장치(710, 720)는 송신부(800 및 714) 및 수신부(900)를 모두 구비할 수 있다. 상기 송신측 반도체 장치(710)는 데이터 저장부(711), 인코딩 회로(800) 및 드라이버부(714)를 구비한다. 상기 인코딩 회로(800)는 데이터 버스 인버스 인코딩 회로(810), 및 인코딩 제어회로(820)를 구비한다.
상기 데이터 저장부(711)는 인코딩하기 위한 데이터를 저장하며, 컨트롤러(controller)의 내부 코아(core) 회로 또는 반도체 메모리 장치(예컨대, DRAM, SRAM 등)의 메모리 코아 블록이 될 수 있다.
상기 데이터 버스 인버스 인코딩 회로(810)는 상기 데이터 저장부(711)로부터 N비트(여기서, N=8)의 제1병렬데이터를 수신하여 DBI DC 코딩을 한 후 제2병렬데이터 및 제1 상태값을 출력한다.
상기 데이터 버스 인버스 인코딩 회로(810)는 상기 제1병렬데이터 중에서 제1로직 레벨을 갖는 비트의 개수가 제1기준값보다 크거나 같은 경우에 상기 제1병렬데이터의 레벨 값들을 모두 반전시켜 출력하고, 제1기준값보다 작은 경우에 상기 제1 병렬데이터의 레벨 값들을 유지시켜 출력한다.
상기 데이터 버스 인버스 인코딩 회로(810)는 상기 반전 또는 유지 여부에 대응하여 상기 제1 상태값을 상기 제1로직 레벨 값 또는 제2로직 레벨 값으로 설정한다.
상기 인코딩 제어회로(820)는 상기 DBI DC 코딩된 코드(제2병렬데이터 및 제1 상태값) 중에서 제1로직 레벨 값을 가진 비트의 개수를 제2기준값과 비교한 결과에 기초하여, 대응하는 제2 상태값을 설정한다.
상기 인코딩 제어회로는(820) 상기 DBI DC 코딩된 코드 및 대응하는 상기 제2상태 값으로 구성된 제1 밸런스코드에서 제1로직 레벨 값을 갖는 비트의 개수와 제3기준값과 비교한 결과에 기초하여 상기 제1 밸런스코드를 유지하여 출력하거나, 상기 DBI DC 코딩된 코드의 제2병렬 데이터를 변환시킨 제2 밸런스코드를 출력한다.
예컨대, 상기 인코딩 제어회로(820)는 상기 제1 밸런스코드에서 제1로직 레벨 값을 갖는 비트의 개수가 상기 제3기준값보다 큰 경우 상기 제1 밸런스코드를 출력하고, 제3기준값보다 작거나 같은 경우 상기 제1 밸런스코드의 상기 제2 병렬데이터가 소정의 개수의 제1로직 레벨 값들을 갖도록 변환시킨다.
도 8은 도 7에 도시된 인코딩 회로(800)의 일 구현예를 나타낸다. 도 5 및 도 8을 참조하면, 상기 인코딩 회로(800)는 도 5에 도시된 상태표에 의한 밸런스코딩을 구현한 예이다.
상기 데이터 버스 인버전 인코딩회로(810)는 8비트의 제1병렬데이터(DP0 내 지 DP7)를 수신하고 DBI DC코딩을 한 후 제2병렬데이터(DQ0 내지 DQ7)와 제1상태값을 출력한다.
상기 인코딩 제어회로(820)는 멀티플렉서(821) 및 로직 레벨 검출기(822)를 구비한다. 상기 멀티플렉서(821)는 상기 레벨 검출기(822)로부터의 제어신호(T)에 기초하여 상기 제2병렬데이터(DQ0 내지 DQ7) 중에서 2비트의 병렬데이터(DQ6 및 DQ7)를 수신하여 출력하거나 2비트의 로우 레벨 값을 갖는 병렬데이터를 출력한다.
상기 로직 레벨 검출기(822)는 상기 제2병렬데이터(DQ0 내지 DQ7)와 제1 상태값을 수신하고 수신된 비트들(DQ0 내지 DQ7, 제1상태값) 중에서 로우 레벨 값을 갖는 비트의 개수를 검출한다. 검출 결과에 기초하여 상기 제1로직 레벨 값을 갖는 비트의 개수가 1보다 작거나 같은 경우 제2 상태값을 로우 레벨 값으로 출력하고, 상기 제1로직 레벨 값을 갖는 비트의 개수가 1보다 큰 경우에는 제2상태값을 하이 레벨로 출력한다.
상기 로직 레벨 검출기(821)는 제2병렬데이터(DQ0 내지 DQ7) 및 제1상태값 중에서 로우 레벨값을 갖는 비트의 개수가 0개일 때는 상기 멀티플렉서(821)가 2비트의 로우 레벨 값을 출력하도록 하고, 비트의 개수가 0보다 클 때에는 상기 병렬데이터(DQ6 및 DQ7)를 출력하도록 하는 제어신호(T)를 출력한다.다시 도 7을 참조하면, 상기 드라이버부(714)는 다수의 드라이버들(미도시)를 구비한다. 상기 드라이버들은 각각이 상기 인코딩 제어회로로부터 출력된 밸런스코드의 비트들을 수신하여 드라이빙(driving)한다.
상기 수신측 반도체 장치(720)는 디코딩 제어회로(910), 데이터 버스 인버전 디코딩회로(920), 및 데이터 저장부(723)을 구비한다.
상기 디코딩 제어회로(910)는 상기 드라이버부(714)로부터 출력된 드라이빙된 제1밸런스코드를 수신하고, 상기 수신된 제1 밸런스코드 중 일부 혹은 전부를 소정의 패턴을 갖는 기준코드와 비교하고 그 비교결과에 기초하여 상기 제1 밸런스 코드를 유지하거나 변환한 제2 밸런스코드를 출력한다. 여기서 상기 제1밸런스코드는 상기 제1병렬 데이터의 반전 여부를 나타내는 제1 상태값과, 상기 반전 또는 비반전된 병렬 데이터 및 상기 제1 상태값 중 제1 로직 레벨의 비트수에 기초하여 생성되는 제2 상태값을 포함한다.
상기 디코딩 제어회로(910)는 상기 제1 밸런스코드 중 일부 혹은 전부가 상기 기준코드와 일치하는 경우, 상기 제1 밸런스코드 중 일부 혹은 전부를 소정 데이터로 대체한다.
상기 데이터 버스 인버전 디코딩 회로(920)는 상기 제2 밸런스 코드를 수신하고 상기 제2 밸런스코드의 제1 상태값에 기초하여 상기 제2 밸런스 코드 중 N비트의 데이터를 반전하거나 유지하여 출력한다.
상기 데이터 버스 인버전 디코딩 회로(920)는 상기 디코딩 제어회로(910)로부터 출력된 밸런스코드를 수신하고 수신된 밸런스코드의 제1상태값에 기초하여 상기 제1병렬데이터를 복원한다.
상기 데이터 버스 인버전 디코딩 회로(920)는 상기 디코딩 제어회로(910)로부터 출력된 밸런스코드를 수신하고 수신된 밸런스코드의 제1 상태값이 제1로직 레벨 값인 경우 수신된 상기 밸런스코드 중에서 병렬데이터 값들을 반전시켜 출력하 고, 제2로직 레벨 값인 경우 수신된 밸런스코드 중에서 병렬데이터 값들을 유지시켜 출력한다.
도 9는 도 7에 도시된 디코딩 회로(900)의 일 구현예를 나타낸다. 도 9를 참조하면,
상기 디코딩 제어회로(910)는 디멀티플렉서(911) 및 패턴검출기(912)를 구비한다. 상기 디멀티플렉서(911)는 상기 패턴 검출기(912)로부터의 제어신호(Q)에 기초하여 상기 밸런스코드의 병렬데이터(DQ0 내지 DQ7) 중에서 2비트의 병렬데이터(DQ6 및 DQ7)를 수신하여 그대로 출력하거나 2비트의 하이 레벨 값을 갖는 병렬데이터를 출력한다.
상기 패턴 검출기(912)는 상기 밸런스코드의 병렬데이터(DQ6 및 DQ7), 제1 상태값, 및 제2 상태값을 수신하여 소정 패턴(0010)인지 검출한다. 상기 패턴 검출기(912)는 상기 소정 패턴(0010)이 검출되지 않으면 상기 멀티플렉서(911)가 상기 병렬데이터(DQ6 및 DQ7)를 출력하고, 상기 소정 패턴(0010)이 검출되면 상기 인코딩시 변환된 병렬데이터(DQ6 및 DQ7)를 복원시키기 위해 2비트의 하이 레벨 값을 갖는 병렬데이터를 출력한다.
상기 데이터 버스 인버전 디코딩 회로(920)는 상기 디코딩 제어회로로부터 출력된 병렬데이터(DQ0 내지 DQ7) 및 제1 상태값을 수신하고, 수신된 제1 상태값에 기초하여 상기 수신된 병렬데이터(DQ0 내지 DQ7)로부터 상기 제1병렬데이터(DP0 내지 DP7)를 출력한다. 즉 상기 데이터 버스 인버전 디코딩 회로(920)는 수신된 상기 제1상태값이 하이 레벨이면 상기 수신된 병렬데이터(DQ0 내지 DQ7)를 반전시켜 출 력하고, 로우 레벨이면 상기 수신된 병렬데이터(DQ0 내지 DQ7)를 유지시켜 출력한다.
도 10은 본 발명의 일 실시 예에 따른 밸런스코딩을 적용시켰을 때 노이즈 감소로 인한 지터(jitter)의 변화를 나타낸다. 도 10을 참조하면, 코딩 전에는 도 10의 아이 다이어그램(eye diagram)에서 나타나는 지터가 58PS이지만 코딩 후에는 SSO(Simultaneous Switching Output) 노이즈가 감소하여 지터가 22PS로 감소하는 것을 알 수 있으며, 전압 마진도 증가함을 알 수 있다.
본 발명은 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 광 데이터 저장장치 등이 있다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다. 그리고 본 발명을 구현하기 위한 기능적인(functional) 프로그램, 코드 및 코드 세그먼트들은 본 발명이 속하는 기술분야의 프로그래머들에 의해 용이하게 추론될 수 있다.
본 발명은 도면에 도시된 일 실시 예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것 이다.
상술한 바와 같이 본 발명에 따른 반도체 장치 사이의 단일형 병렬데이터 인터페이스 방법, 기록매체 및 반도체 장치는 DBI DC를 이용한 밸런스코드를 설정시 상태값을 하나 더 추가하여 코딩함으로써 채널에 흐르는 전류변화량을 감소시켜 반도체 장치 내부의 기생인덕턴스에 의한 노이즈를 감소시키는 효과가 있다. 또한, 본 발명에 따르면, 노이즈 감소로 인하여, 지터가 감소하며, 전압 마진도 증가한다.
또한 본 발명은 전송하고자 하는 모든 형태의 병렬데이터 각각에 대응하는 코딩회로가 필요한 것이 아니라, 체계적인(systematic) DBI DC코딩하므로 적은 회로 면적으로 구현이 가능한 장점이 있다.
Claims (21)
- 반도체 장치 사이의 단일형(Single ended) 병렬데이터 인터페이스 방법에 있어서,(a)N비트의 제1 병렬데이터 중에서 제1로직 레벨 값을 갖는 비트의 개수를 제1 기준값과 비교한 결과에 기초하여, 상기 제1 병렬데이터의 레벨 값들을 반전 또는 유지시킨 제2 병렬 데이터 및 그 결과에 대응하는 제1 상태 값을 설정하는 단계;(b)상기 제2 병렬데이터의 레벨 값들과 상기 제 1상태 값 중에서 상기 제1로직 레벨 값을 갖는 비트의 개수를 제2기준값과 비교한 결과에 기초하여, 제2 상태 값을 설정하는 단계; 및(c)상기 제2 병렬데이터의 레벨 값들, 상기 제1 상태 값, 및 상기 제2 상태 값으로 구성된 제1 밸런스코드(balance code)에서 상기 제1로직 레벨 값을 갖는 비트의 개수와 제3기준값과 비교한 결과에 기초하여, 상기 제1 밸런스코드를 출력하거나 상기 제2병렬 데이터를 변환시킨 제2 밸런스코드를 출력하는 단계를 구비하는 것을 특징으로 하는 반도체 장치 사이의 단일형(Single ended) 병렬데이터 인터페이스 방법.
- 제1항에 있어서, 상기 (a)단계는,(a1)상기 제1로직 레벨 값을 갖는 비트의 개수가 제1 기준값보다 작은 경우 에 상기 제1 병렬데이터의 레벨 값들을 유지시키고, 상기 제1 상태 값을 상기 제1로직 레벨 값으로 설정하는 단계; 및(a2)상기 제1로직 레벨 값을 갖는 비트의 개수가 제1 기준값보다 크거나 같은 경우에 상기 제1 병렬데이터의 레벨 값들을 모두 반전시키고, 상기 제1 상태 값을 제2로직 레벨 값으로 설정하는 단계를 구비하는 것을 특징으로 하는 반도체 장치 사이의 단일형 병렬데이터 인터페이스 방법.
- 제1항에 있어서, 상기 (b)단계는,(b1)상기 제2 병렬데이터의 레벨 값들과 상기 제1 상태 값 중에서 상기 제1로직 레벨 값을 갖는 비트의 개수가 상기 제2기준값보다 작거나 같은 경우에 상기 제2 상태 값을 상기 제1로직 레벨 값으로 설정하는 단계; 및(b2)상기 제2 병렬데이터의 레벨 값들과 상기 제1 상태 값 중에서 상기 제1로직 레벨 값을 갖는 비트의 개수가 상기 제2기준값보다 큰 경우에 상기 제2 상태 값을 제2로직 레벨 값으로 설정하는 단계를 구비하는 것을 특징으로 하는 반도체 장치 사이의 단일형 병렬데이터 인터페이스 방법.
- 제1항에 있어서, 상기 (c)단계는,(c1)상기 제1 밸런스코드에서 상기 제1로직 레벨 값을 갖는 비트의 개수가 상기 제3 기준값보다 큰 경우 상기 제1 밸런스코드를 설정하는 단계; 및(c2)상기 제1 밸런스코드에서 상기 제1로직 레벨 값을 갖는 비트의 개수가 상기 제3 기준값보다 같거나 작은 경우, 상기 제1 밸런스코드의 상기 제2 병렬데이터가 소정의 개수의 상기 제1로직 레벨 값들을 갖도록 변환시키는 단계를 구비하는 것을 특징으로 하는 반도체 장치 사이의 단일형 병렬데이터 인터페이스 방법.
- 제4항에 있어서,상기 N은 8이고, 상기 제1 기준값은 4이고, 상기 제2 기준값은 1이고, 상기 제3 기준값은 1이고, 상기 소정의 개수는 2 이며,상기 (c2)단계는,상기 제2 병렬데이터의 최하위 2비트의 값을 상기 제1로직 레벨 값으로 변환시키는 것을 특징으로 하는 반도체 장치 사이의 단일형 병렬데이터 인터페이스 방법.
- 병렬데이터 송신을 위한 인코딩 단계 및 상기 병렬데이터 수신을 위한 디코딩 단계를 구비하는 반도체 장치 사이의 단일형 병렬데이터 인터페이스 방법에 있어서,상기 인코딩 단계는,(a)N비트의 제1 병렬데이터 중에서 제1로직 레벨 값을 갖는 비트의 개수를 제1 기준값과 비교한 결과에 기초하여, 상기 제1 병렬데이터의 레벨 값들을 반전 또는 유지시킨 N비트의 제2 병렬 데이터 및 그 결과에 대응하는 제1 상태 값을 설정하는 단계;(b)상기 제2 병렬데이터의 레벨 값들과 상기 제 1상태 값 중에서 상기 제1로직 레벨 값을 갖는 비트의 개수를 제2기준값과 비교한 결과에 기초하여, 제2 상태 값을 설정하는 단계; 및(c)상기 제2 병렬데이터의 레벨 값들, 상기 제1 상태 값, 및 상기 제2 상태 값으로 구성된 제1 밸런스코드(balance code)에서 상기 제1로직 레벨 값을 갖는 비트의 개수와 제3기준값과 비교한 결과에 기초하여, 상기 제1 밸런스코드를 설정하거나 상기 제2병렬 데이터를 변환시킨 제2 밸런스코드를 설정하는 단계를 구비하며,상기 디코딩 단계는,(d)상기 (c)단계에서 설정된 밸런스코드와 소정의 패턴(pattern)을 가지는 기준코드와 비교한 결과에 기초하여, 상기 설정된 밸런스코드로부터 상기 제1 병렬데이터를 복원하는 단계를 구비하는 것을 특징으로 하는 반도체 장치 사이의 단일형 병렬데이터 인터페이스 방법.
- 제6항에 있어서, 상기 (a)단계는,(a1)상기 제1로직 레벨 값을 갖는 비트의 개수가 제1 기준값보다 작은 경우에 상기 제1 병렬데이터의 레벨 값들을 유지시키고, 상기 제1 상태 값을 상기 제1로직 레벨 값으로 설정하는 단계; 및(a2)상기 제1로직 레벨 값을 갖는 비트의 개수가 제1 기준값보다 크거나 같은 경우에 상기 제1 병렬데이터의 레벨 값들을 모두 반전시키고, 상기 제1 상태 값 을 제2로직 레벨 값으로 설정하는 단계를 구비하는 것을 특징으로 하는 반도체 장치 사이의 단일형 병렬데이터 인터페이스 방법.
- 제6항에 있어서, 상기 (b)단계는,(b1)상기 제2 병렬데이터의 레벨 값들과 상기 제1 상태 값 중에서 상기 제1로직 레벨 값을 갖는 비트의 개수가 상기 제2기준값보다 작거나 같은 경우에 상기 제2 상태 값을 상기 제1로직 레벨 값으로 설정하는 단계; 및(b2)상기 제2 병렬데이터의 레벨 값들과 상기 제1 상태 값 중에서 제1로직 레벨 값을 갖는 비트의 개수가 상기 제2기준값보다 큰 경우에 상기 제2 상태 값을 제2로직 레벨 값으로 설정하는 단계를 구비하는 것을 특징으로 하는 반도체 장치 사이의 단일형 병렬데이터 인터페이스 방법.
- 제6항에 있어서, 상기 (c)단계는,(c1)상기 제1 밸런스코드에서 상기 제1로직 레벨 값을 갖는 비트의 개수가 상기 제3 기준값보다 큰 경우 상기 제1 밸런스코드를 설정하는 단계; 및(c2)상기 제1 밸런스코드에서 상기 제1로직 레벨 값을 갖는 비트의 개수가 상기 제3 기준값보다 같거나 작은 경우, 상기 제1 밸런스코드의 상기 제2 병렬데이터가 소정의 개수의 상기 제1로직 레벨 값들을 갖도록 변환시킨 제2밸러스코드를 설정하는 단계를 구비하는 것을 특징으로 하는 반도체 장치 사이의 단일형 병렬데이터 인터페이스 방법.
- 제9항에 있어서, 상기 (d)단계는,(d1)상기 (c)단계에서 설정된 밸런스코드와 상기 기준코드와 일치하지 않는 경우 상기 제1 상태값에 기초하여 상기 설정된 밸런스코드로부터 상기 제1병렬데이터를 복원하는 단계; 및(d2)상기 (c)단계에서 설정된 밸런스코드와 상기 기준코드와 일치하는 경우 상기 설정된 밸런스코드 중에서 상기 (c2)단계에서 제1로직 레벨로 변환된 데이터 값들을 반전시킨 제3밸런스코드를 설정한 후, 상기 제1 상태값에 기초하여 상기 제3밸런스코드로부터 제1 병렬테이터를 복원하는 단계를 구비하는 것을 특징으로 하는 반도체 장치 사이의 단일형 병렬데이터 인터페이스 방법.
- 제10항에 있어서,상기 (d1)단계는,상기 제1 상태값이 상기 제1로직 레벨 값인 경우에는 상기 설정된 밸런스코드의 병렬데이터를 유지시키고, 제2로직 레벨 값인 경우에는 반전시키며,상기 (d2)단계는,상기 제1 상태 값이 상기 제1로직 레벨 값인 경우에는 상기 제3밸런스코드의 병렬데이터를 유지시키고, 제2로직 레벨 값인 경우에는 반전시키는 것을 특징으로하는 반도체 장치 사이의 단일형 병렬데이터 인터페이스 방법.
- 제11항에 있어서,상기 N은 8이고, 상기 제1 기준값은 4이고, 상기 제2 기준값은 1이고, 상기 제3 기준값은 1이고, 상기 소정의 개수는 2이고, 상기 기준코드는 상기 제2병렬데이터의 최하위 2비트가 상기 제1로직 레벨 값인 경우이며,상기 (c2)단계는,상기 제2 병렬데이터가 2개의 상기 제1로직 레벨 값을 갖도록 상기 제1밸런스코드를 변환시키는 것을 특징으로 하는 반도체 장치 사이의 단일형 병렬데이터 인터페이스 방법.
- 제1항 내지 제12항 중의 어느 한 항에 기재된 방법을 실행하기 위한 프로그램을 기록한 기록매체.
- N비트의 제1 병렬데이터를 수신하여, 상기 제1 병렬데이터의 레벨 값들 중에서 제1로직 레벨 값을 갖는 비트의 개수를 제1 기준값과 비교한 결과에 기초하여, 상기 제1 병렬데이터의 레벨 값들을 반전시키거나 유지시킨 제2 병렬데이터 및 상기 반전 여부에 대응하는 제1 상태 값을 출력하는 데이터 버스 반전 인코딩 회로;상기 제2병렬데이터의 레벨 값들과 상기 제1 상태값 중에서 상기 제1로직 레벨 값을 가진 비트의 개수를 제2 기준값과 비교한 결과에 기초하여 제2 상태값을 출력하고, 상기 제2 병렬데이터의 레벨 값들, 상기 제1 상태 값, 및 상기 제2 상태 값으로 구성된 제1 밸런스코드에서 상기 제1로직 레벨 값을 갖는 비트의 개수와 제 3 기준값과 비교한 결과에 기초하여, 상기 제1 밸런스코드를 출력하거나 상기 제2병렬 데이터를 변환시킨 제2 밸런스코드를 출력하는 인코딩 제어회로; 및각각이 상기 인코딩 제어회로로부터 출력된 밸런스코드의 비트들을 수신하여 드라이빙(driving)하기 위한 다수의 드라이버들을 구비하는 것을 특징으로 하는 반도체 장치.
- 제14항에 있어서, 상기 데이터 버스 반전 인코딩 회로는,상기 제1로직 레벨을 갖는 비트의 개수가 상기 제1 기준값보다 크거나 같은 경우에 상기 제1 병렬데이터의 레벨 값들을 모두 반전시켜 출력하고 제1기준값보다 작은 경우에 상기 제1 병렬데이터의 레벨 값들을 유지시켜 출력하고, 상기 반전 또는 유지 여부에 대응하여 상기 제1 상태값을 상기 제1로직 레벨 값 또는 제2로직 레벨 값으로 설정하는 것을 특징으로 하는 반도체 장치.
- 제14항에 있어서, 상기 인코딩 제어회로는,상기 제1 밸런스코드에서 상기 제1로직 레벨 값을 갖는 비트의 개수가 상기 제3 기준값보다 큰 경우 상기 제1 밸런스코드를 출력하고, 상기 제3 기준값보다 작거나 같은 경우 상기 제1 밸런스코드의 상기 제2 병렬데이터가 소정의 개수의 제1로직 레벨 값들을 갖도록 변환시키는 것을 특징으로 하는 반도체 장치.
- 제16항에 있어서,상기 N은 8이고, 상기 제1 기준값은 4이고, 상기 제2 기준값은 1이고, 상기 제3 기준값은 1이고, 상기 소정의 개수는 2이며,상기 인코딩 제어회로는,상기 제2 병렬데이터가 2개의 상기 제1로직 레벨 값을 갖도록 상기 제1밸런스코드를 변환시키는 것을 특징으로 하는 반도체 장치.
- 제14항에 있어서, 상기 다수의 드라이버들 각각은,인버터 타입인 것을 특징으로 하는 반도체 장치.
- N비트의 병렬 데이터가 M(>N)비트의 제1 밸런스코드로 인코딩된 데이터를 수신하기 위한 수신부를 구비하는 반도체 장치에 있어서,상기 수신부는,상기 M 비트의 제1 밸런스코드를 수신하고, 상기 수신된 제1 밸런스코드 중 일부 혹은 전부를 소정의 패턴을 갖는 기준코드와 비교하고 그 비교결과에 기초하여 상기 제1 밸런스 코드를 유지하거나 변환한 제2 밸런스코드를 출력하는 디코딩 제어회로; 및상기 제2 밸런스 코드를 수신하고 상기 제2 밸런스코드의 제1 상태값에 기초하여 상기 제2 밸런스 코드 중 N비트의 데이터를 반전하거나 유지하여 출력하는 데이터 버스 인버스 디코딩 회로를 구비하는 것을 특징으로 하는 반도체 장치.
- 제19항에 있어서, 상기 제1 밸런스코드는상기 N비트의 병렬 데이터의 반전 여부를 나타내는 제1 상태값과, 상기 반전 또는 비반전된 병렬 데이터 및 상기 제1 상태값 중 제1 로직 레벨의 비트수에 기초하여 생성되는 제2 상태값을 포함하는 것을 특징으로 하는 반도체 장치.
- 제20항에 있어서, 상기 디코딩 제어회로는상기 제1 밸런스코드 중 일부 혹은 전부가 상기 기준코드와 일치하는 경우, 상기 제1 밸런스코드 중 일부 혹은 전부를 소정 데이터로 대체하는 것을 특징으로 하는 반도체 장치.
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020060030751A KR100877680B1 (ko) | 2006-04-04 | 2006-04-04 | 반도체 장치 사이의 단일형 병렬데이터 인터페이스 방법,기록매체 및 반도체 장치 |
US11/730,795 US7495587B2 (en) | 2006-04-04 | 2007-04-04 | Low power balance code using data bus inversion |
JP2007098643A JP5230960B2 (ja) | 2006-04-04 | 2007-04-04 | データバスインバージョンを使う低電力バランスコード |
CN2007101288529A CN101079317B (zh) | 2006-04-04 | 2007-04-04 | 平衡编码数据总线反转数据的方法和系统 |
TW096112186A TW200818719A (en) | 2006-04-04 | 2007-04-04 | Low power balance code using data bus inversion |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020060030751A KR100877680B1 (ko) | 2006-04-04 | 2006-04-04 | 반도체 장치 사이의 단일형 병렬데이터 인터페이스 방법,기록매체 및 반도체 장치 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20070099373A true KR20070099373A (ko) | 2007-10-09 |
KR100877680B1 KR100877680B1 (ko) | 2009-01-09 |
Family
ID=38604683
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020060030751A KR100877680B1 (ko) | 2006-04-04 | 2006-04-04 | 반도체 장치 사이의 단일형 병렬데이터 인터페이스 방법,기록매체 및 반도체 장치 |
Country Status (5)
Country | Link |
---|---|
US (1) | US7495587B2 (ko) |
JP (1) | JP5230960B2 (ko) |
KR (1) | KR100877680B1 (ko) |
CN (1) | CN101079317B (ko) |
TW (1) | TW200818719A (ko) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2009051991A3 (en) * | 2007-10-17 | 2009-07-02 | Micron Technology Inc | Balanced data bus inversion |
WO2011090523A1 (en) * | 2010-01-20 | 2011-07-28 | Rambus Inc. | Multiple word data bus inversion |
KR20150026225A (ko) * | 2013-09-02 | 2015-03-11 | 에스케이하이닉스 주식회사 | 반도체 장치 및 그의 동작 방법 |
KR101875098B1 (ko) * | 2010-04-12 | 2018-07-06 | 어드밴스드 마이크로 디바이시즈, 인코포레이티드 | 데이터 버스 반전 시그널링을 이용한 동시 스위칭 출력들의 감소 |
Families Citing this family (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100902051B1 (ko) * | 2007-07-12 | 2009-06-15 | 주식회사 하이닉스반도체 | 오류 검사 코드 생성장치 및 방법 |
US8581920B2 (en) * | 2007-09-27 | 2013-11-12 | Rambus Inc. | Utilizing masked data bits during accesses to a memory |
US7522073B1 (en) * | 2007-11-30 | 2009-04-21 | Qimonda North America Corp. | Self-adapted bus inversion |
US7616133B2 (en) | 2008-01-16 | 2009-11-10 | Micron Technology, Inc. | Data bus inversion apparatus, systems, and methods |
FR2928757B1 (fr) * | 2008-03-14 | 2014-06-20 | Centre Nat Rech Scient | Procede et dispositif de codage, systeme electronique et support d'enregistrement associes |
US7729166B2 (en) * | 2008-07-02 | 2010-06-01 | Mosaid Technologies Incorporated | Multiple-bit per cell (MBC) non-volatile memory apparatus and system having polarity control and method of programming same |
US8918597B2 (en) * | 2008-08-29 | 2014-12-23 | Infineon Technologies Ag | Digital data inversion flag generator circuit |
US7899961B2 (en) * | 2008-09-02 | 2011-03-01 | Qimonda Ag | Multi-mode bus inversion method and apparatus |
US20100245582A1 (en) * | 2009-03-25 | 2010-09-30 | Syclipse Technologies, Inc. | System and method of remote surveillance and applications therefor |
EP3654191B1 (en) * | 2009-07-13 | 2023-08-02 | Rambus Inc. | Encoding data using combined data mask and data bus inversion |
US9131245B2 (en) | 2011-09-23 | 2015-09-08 | Qualcomm Incorporated | Reference picture list construction for video coding |
US9264717B2 (en) | 2011-10-31 | 2016-02-16 | Qualcomm Incorporated | Random access with advanced decoded picture buffer (DPB) management in video coding |
US8909840B2 (en) | 2011-12-19 | 2014-12-09 | Advanced Micro Devices, Inc. | Data bus inversion coding |
KR101960242B1 (ko) | 2012-09-18 | 2019-03-20 | 삼성전자주식회사 | 신체 영역 네트워크 또는 저전력 네트워크에서 직류 발란싱을 수행하는 최소 에너지 코딩 방법 및 장치 |
WO2014136178A1 (ja) * | 2013-03-04 | 2014-09-12 | 富士機械製造株式会社 | データベース、データベースの構築方法、通信装置及び電子部品装着装置 |
US9252802B2 (en) * | 2014-02-07 | 2016-02-02 | Qualcomm Incorporated | Encoding for partitioned data bus |
KR20150099928A (ko) | 2014-02-24 | 2015-09-02 | 삼성전자주식회사 | 반도체 메모리 장치 및 메모리 시스템 |
US20150317204A1 (en) * | 2014-04-30 | 2015-11-05 | Lsi Corporation | Systems and Methods for Efficient Data Refresh in a Storage Device |
US9665527B2 (en) * | 2014-12-09 | 2017-05-30 | Intel Corporation | Dynamic bus inversion with programmable termination level to maintain programmable target ratio of ones and zeros in signal lines |
US10540304B2 (en) | 2017-04-28 | 2020-01-21 | Advanced Micro Devices, Inc. | Power-oriented bus encoding for data transmission |
KR102441578B1 (ko) * | 2017-10-27 | 2022-09-07 | 삼성전자주식회사 | 다중 데이터 버스 반전 동작을 수행하는 방법 및 메모리 장치 |
KR20210149543A (ko) * | 2020-06-02 | 2021-12-09 | 삼성전자주식회사 | 메모리 장치 및 이를 포함하는 메모리 시스템 |
US11756592B2 (en) | 2020-09-29 | 2023-09-12 | Samsung Electronics Co., Ltd. | Memory device supporting DBI interface and operating method of memory device |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6173429B1 (en) * | 1997-03-14 | 2001-01-09 | Harris Corporation | Apparatus for providing error correction data in a digital data transfer system |
CN1483166A (zh) * | 2000-11-07 | 2004-03-17 | 英特尔公司 | 采用动态总线倒置来降低同步转换输出噪音的方法和装置 |
US6633951B2 (en) * | 2001-03-15 | 2003-10-14 | Intel Corporation | Method for reducing power consumption through dynamic memory storage inversion |
US20040068594A1 (en) | 2002-10-08 | 2004-04-08 | Anthony Asaro | Method and apparatus for data bus inversion |
KR100578219B1 (ko) | 2004-12-30 | 2006-05-12 | 주식회사 하이닉스반도체 | 온-칩 데이터 전송 제어장치 및 그 제어방법 |
DE102005013322B3 (de) * | 2005-03-22 | 2006-10-05 | Infineon Technologies Ag | Schaltung zur Erzeugung eines Datenbitinvertierungsflags (DBI) |
KR100656448B1 (ko) | 2005-11-29 | 2006-12-11 | 주식회사 하이닉스반도체 | 반도체 메모리의 dbi 신호 생성장치 및 방법 |
-
2006
- 2006-04-04 KR KR1020060030751A patent/KR100877680B1/ko active IP Right Grant
-
2007
- 2007-04-04 CN CN2007101288529A patent/CN101079317B/zh active Active
- 2007-04-04 US US11/730,795 patent/US7495587B2/en active Active
- 2007-04-04 JP JP2007098643A patent/JP5230960B2/ja active Active
- 2007-04-04 TW TW096112186A patent/TW200818719A/zh unknown
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2009051991A3 (en) * | 2007-10-17 | 2009-07-02 | Micron Technology Inc | Balanced data bus inversion |
WO2011090523A1 (en) * | 2010-01-20 | 2011-07-28 | Rambus Inc. | Multiple word data bus inversion |
US8581755B2 (en) | 2010-01-20 | 2013-11-12 | Rambus Inc. | Multiple word data bus inversion |
KR101875098B1 (ko) * | 2010-04-12 | 2018-07-06 | 어드밴스드 마이크로 디바이시즈, 인코포레이티드 | 데이터 버스 반전 시그널링을 이용한 동시 스위칭 출력들의 감소 |
KR20150026225A (ko) * | 2013-09-02 | 2015-03-11 | 에스케이하이닉스 주식회사 | 반도체 장치 및 그의 동작 방법 |
Also Published As
Publication number | Publication date |
---|---|
US7495587B2 (en) | 2009-02-24 |
US20070242508A1 (en) | 2007-10-18 |
CN101079317A (zh) | 2007-11-28 |
TW200818719A (en) | 2008-04-16 |
JP5230960B2 (ja) | 2013-07-10 |
KR100877680B1 (ko) | 2009-01-09 |
CN101079317B (zh) | 2012-01-18 |
JP2007282237A (ja) | 2007-10-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100877680B1 (ko) | 반도체 장치 사이의 단일형 병렬데이터 인터페이스 방법,기록매체 및 반도체 장치 | |
JP5575237B2 (ja) | 組み合わせデータマスクおよびデータバス反転を用いたデータ符号化 | |
US8581755B2 (en) | Multiple word data bus inversion | |
KR100885869B1 (ko) | 프리엠블 코드를 사용하여 노이즈를 감소시키는 단일형병렬데이터 인터페이스 방법, 기록매체 및 반도체 장치 | |
US7127003B2 (en) | Method and apparatus for communicating information using different signaling types | |
US8588280B2 (en) | Asymmetric communication on shared links | |
US8018358B2 (en) | Balanced data bus inversion | |
US6278740B1 (en) | Multi-bit (2i+2)-wire differential coding of digital signals using differential comparators and majority logic | |
KR100744141B1 (ko) | 싱글 엔디드 신호 라인의 가상 차동 상호 연결 회로 및가상 차동 신호 방식 | |
US8223042B2 (en) | Encoding data with minimum hamming weight variation | |
US9362962B2 (en) | Methods and systems for energy-efficient communications interface | |
US6333704B1 (en) | Coding/decoding system of bit insertion/manipulation line code for high-speed optical transmission system | |
JPH09251336A (ja) | 入出力装置 | |
US20100040169A1 (en) | Coding methods and systems for improved error margins | |
US20100045491A1 (en) | Input/output (io) interface and method of transmitting io data | |
US9559872B2 (en) | Signal transmission system | |
US20090060083A1 (en) | Receiver circuit | |
JP2002232491A (ja) | データ送信回路 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20121130 Year of fee payment: 5 |
|
FPAY | Annual fee payment |
Payment date: 20131129 Year of fee payment: 6 |
|
FPAY | Annual fee payment |
Payment date: 20191129 Year of fee payment: 12 |