KR101311617B1 - Method and apparatus of address bus coding/decoding for low-power very large scale integration system - Google Patents
Method and apparatus of address bus coding/decoding for low-power very large scale integration system Download PDFInfo
- Publication number
- KR101311617B1 KR101311617B1 KR1020060020164A KR20060020164A KR101311617B1 KR 101311617 B1 KR101311617 B1 KR 101311617B1 KR 1020060020164 A KR1020060020164 A KR 1020060020164A KR 20060020164 A KR20060020164 A KR 20060020164A KR 101311617 B1 KR101311617 B1 KR 101311617B1
- Authority
- KR
- South Korea
- Prior art keywords
- bit
- value
- bits
- bus
- current bus
- 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/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/3243—Power saving in microcontroller unit
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
본 발명은 어드레스 버스값의 비트 변화율을 최소화하여 VLSI 시스템의 전력 소모를 절감할 수 있는 어드레스 버스값의 코딩/디코딩 장치 및 방법에 대한 것으로서, 본 발명에 따른 저전력 대규모 집적 회로 시스템을 위한 어드레스 버스 코딩 방식은 현재 버스값을 입력받아 0과 1의 비트수를 비교하여 상기 현재 버스값을 선택적으로 비트 반전하고, 상기 선택적으로 비트 반전된 현재 버스값과 이전 버스값을 벡터적 연산한 후, 상기 벡터적 연산된 비트값에 상기 비트 반전 여부를 지시하는 비트 정보를 덧붙여 해당 버스로 전송하는 것을 특징으로 한다. 따라서 본 발명은 현재 발생되는 어드레스 버스값에 의한 비트 변화율을 사전에 알 수 있으므로 어드레스 맵을 작성 시 이를 고려하여 작성할 수 있으며, 종래 방식에 비해 어드레스 버스값의 비트 변화율을 최소화할 수 있기 때문에 전력소모를 최소화할 수 있다.The present invention relates to an apparatus and method for coding / decoding an address bus value, which can reduce power consumption of a VLSI system by minimizing a bit change rate of an address bus value. An address bus coding for a low power large scale integrated circuit system according to the present invention. The method receives a current bus value and compares the number of bits between 0 and 1 to selectively bit invert the current bus value, and vectorizes the selectively bit inverted current bus value and the previous bus value, and then the vector. The bit information indicating whether the bit is inverted is added to the bit value that has been previously calculated and transmitted to the corresponding bus. Therefore, the present invention can know in advance the bit change rate due to the address bus value currently generated can be prepared in consideration of this when creating an address map, and the power consumption is reduced because the bit change rate of the address bus value can be minimized compared to the conventional method. Can be minimized.
VLSI, 어드레스 버스, 코딩, 디코딩, 비트 변화율, 전력 VLSI, Address Bus, Coding, Decoding, Bit Rate of Change, Power
Description
도 1은 종래 VLSI 시스템에서 버스 코딩 장치의 구성을 나타낸 블록도1 is a block diagram showing the configuration of a bus coding apparatus in a conventional VLSI system
도 2는 종래 VLSI 시스템에서 버스 디코딩 장치의 구성을 나타낸 블록도2 is a block diagram showing the configuration of a bus decoding apparatus in a conventional VLSI system
도 3은 본 발명의 실시 예에 따른 VLSI 시스템에 구비되는 어드레스 버스 코딩 장치의 구성을 나타낸 블록도3 is a block diagram illustrating a configuration of an address bus coding apparatus included in a VLSI system according to an exemplary embodiment of the present invention.
도 4는 본 발명의 실시 예에 따른 어드레스 버스 코딩 방법을 나타낸 순서도4 is a flowchart illustrating an address bus coding method according to an exemplary embodiment of the present invention.
도 5는 본 발명의 실시 예에 따른 VLSI 시스템에 구비되는 어드레스 버스 디코딩 장치의 구성을 나타낸 블록도5 is a block diagram illustrating a configuration of an address bus decoding apparatus included in a VLSI system according to an exemplary embodiment of the present invention.
도 6은 본 발명의 실시 예에 따른 어드레스 버스 디코딩 방법을 나타낸 순서도6 is a flowchart illustrating an address bus decoding method according to an exemplary embodiment of the present invention.
본 발명은 대규모 집적 회로(Very Large Scale Integration : VLSI) 시스템 에서 어드레스 버스(address bus)를 통해 전송되는 비트값을 코딩/디코딩하는 장치 및 방법에 대한 것으로서, 특히 어드레스 버스값의 비트 변화율을 최소화하여 VLSI 시스템의 전력 소모를 절감할 수 있는 어드레스 버스값의 코딩/디코딩 장치 및 방법에 대한 것이다.BACKGROUND OF THE
일반적으로 이동통신 시스템의 핸드폰과 같이 저전력 VLSI 시스템이 탑재되는 전자 장치에서 메모리 등의 억세스를 위한 버스 코딩(bus coding) 기법은 어드레스 또는 데이터 버스를 통해 전송되는 비트 정보의 각 비트의 변화율을 최대한으로 낮춰줌으로서 버스 상에서 소모되는 전력의 소모를 줄이는 것이 중요하다. 이는 저전력 VLSI 시스템의 버스를 통해 전송되는 비트 정보의 비트 변화율이 높을수록 시스템내에서 CMOS(Complementary Metal-Oxide Semiconductor) 소자 등의 스위칭 동작이 빈번하게 수행되어 전력 소모가 증가되기 때문이다. 또한 VLSI 시스템의 제조 기술이 급속히 향상됨에 따라 트랜지스터에서 소모되는 전력보다는 VLSI 시스템의 버스 라인에서 소모되는 전력이 더 큰 비중을 차지하게 되어 버스 코딩 기법의 중요성은 더욱 커지고 있다.In general, in an electronic device equipped with a low-power VLSI system such as a mobile phone of a mobile communication system, a bus coding technique for accessing a memory may maximize the rate of change of each bit of bit information transmitted through an address or data bus. It is important to reduce the power consumption on the bus by lowering it. This is because the higher the bit change rate of the bit information transmitted through the bus of the low-power VLSI system, the more frequently the switching operation of a complementary metal-oxide semiconductor (CMOS) device in the system is increased power consumption. In addition, as the manufacturing technology of the VLSI system is rapidly improved, the bus coding technique becomes more important because the power consumed by the bus line of the VLSI system is more important than the power consumed by the transistor.
따라서 VLSI 시스템의 내부 프로세서와 메모리와 같은 시스템 구성 요소들간에 어드레스 버스 또는 데이터 버스를 통한 데이터 통신을 수행할 경우 전력 소모를 최소화하기 위해서는 버스를 통해 각 구성 요소들간에 전달되는 비트 정보를 최소한의 비트 변화율로 전송하는 것이 필요하다. 이를 위해 VLSI 시스템은 어드레스 버스 또는 데이터 버스를 통해 전달되는 비트 정보의 변화율을 감소시키기 위한 버스 코딩 장치와 디코딩 장치를 구비하여야 한다.Therefore, when performing data communication through the address bus or data bus between system components such as the internal processor and memory of the VLSI system, in order to minimize power consumption, the bit information transmitted between the components through the bus is minimized. It is necessary to transmit at the rate of change. To this end, the VLSI system should be equipped with a bus coding apparatus and a decoding apparatus for reducing the rate of change of the bit information transmitted through the address bus or data bus.
즉 도 1은 종래 VLSI 시스템에서 버스 코딩 장치의 구성을 나타낸 블록도이다.1 is a block diagram illustrating a configuration of a bus coding apparatus in a conventional VLSI system.
먼저 본 명세서에서는 이전 시점에 발생되어 어드레스 버스 또는 데이터 버스를 통해 전송된 비트 정보를 "이전 버스값"이라 정의하고, 현재 어드레스 버스 또는 데이터 버스를 통해 전송하고자 입력된 비트 정보를 "현재 버스값"이라 정의하기로 한다.First, in the present specification, bit information generated at a previous time and transmitted through an address bus or a data bus is defined as a “previous bus value.” Bit information input to be transmitted through a current address bus or data bus is referred to as a “current bus value.” This will be defined.
도 1에서 이전 버스값 저장기(110)는 이전 버스값(A’(n-1))을 저장한다. 그리고 벡터거리 계산기(130)는 입력 라인으로부터 N 비트의 현재 버스값(A(n))을 전달받음은 물론 이전 버스값 저장기(110)로부터 이전 버스값(A’(n-1))을 전달받아 두 버스값 간의 서로 다른 비트 수를 계산하여 벡터 거리를 구한다. 예를 들어 이전 버스값 A’(n-1) = “1000_0000”이고, 현재 버스값 A(n) = “1100_0000”이라 했을 때 두 버스값 간의 서로 다른 비트는 1 비트이므로 벡터거리 값은 ‘1’이 된다. 상기한 방식으로 계산된 벡터거리 값은 다음단인 벡터거리 비교기(150)로 입력된다.In FIG. 1, the previous
상기 벡터거리 비교기(150)는 벡터거리 계산기(130)로부터 입력받은 벡터거리값이 해당 버스 길이의 절반(N/2, N: 버스 길이에 대응되는 비트 수) 보다 클 경우 ‘1’의 값을 출력하고, 입력받은 벡터거리 값이 해당 버스 길이의 절반보다 작거나 같을 경우 ‘0’의 값을 출력한다. 상기 벡터거리 비교기(150)의 1 비트 출력은 최종 출력 버스값(B(n))의 최상위 비트(Most Significant Bit : MSB)로 사용되며, 동시에 비트 반전기(170)로 입력된다.The
상기 비트 반전기(170)는 벡터거리 비교기(150)의 출력이 ‘1’일 경우 현재 버스값을 일의 보수형태(one’s complement)로 변환시키며, 벡터거리 비교기(150)의 출력이 ‘0’일 경우 현재 버스값을 입력된 그대로 출력한다. 여기서 일의 보수 형태의 변환은 입력되는 버스값의 각 비트를 ‘0’에서 ‘1’로 ‘1’에서 ‘0’으로 변환시키는 것을 의미한다. 벡터거리 비교기(150)의 1 비트 출력과 비트 반전기(170)의 N 비트 출력은 N+1 비트의 인코딩된 출력 버스값(B(n))을 구성한다.The
도 1에서 설명한 버스 코딩 장치의 특징은 현재 비트값의 비트 수를 N이라 했을 때 이전 버스값에 비해 현재 버스값의 비트 변화가 N/2 보다 클 경우 비트 반전기(170)를 통해 현재 버스값의 비트들을 반전시킴으로서 전송되는 버스값의 최대 비트 변화율을 N/2로 감소시키는 것이다.The characteristic of the bus coding apparatus described with reference to FIG. 1 is that when the number of bits of the current bit value is N, when the bit change of the current bus value is greater than N / 2 compared to the previous bus value, the current bus value is obtained through the
도 2는 종래 VLSI 시스템에서 버스 디코딩 장치의 구성을 나타낸 블록도이다.2 is a block diagram illustrating a configuration of a bus decoding apparatus in a conventional VLSI system.
도 1에서 설명한 버스 코딩 장치의 출력 버스값은 VLSI 시스템의 버스를 통해 전송되어 도 2에 도시된 버스 디코딩 장치의 입력 버스값(B(n))으로 주어진다. 도 2의 비트 반전기(210)는 N+1 비트의 입력 버스값(B(n))으로부터 1 비트의 최상위 비트(MSB)와 N 비트의 비트값을 구분하여 입력받는다. 그리고 비트 반전기(210)는 최상위 비트(MSB)의 비트값을 근거로 N 비트의 비트값에 대한 비트 반전을 수행할 지 여부를 결정한다.The output bus value of the bus coding apparatus described in FIG. 1 is transmitted through the bus of the VLSI system and is given as the input bus value B (n) of the bus decoding apparatus shown in FIG. The
여기서 비트 반전기(210)는 최상위 비트(MSB)가 ‘1’이면 일의 보수 형태의 비트 변환을 통해 비트 반전을 수행하고, ‘0’이면 비트 반전을 수행하지 않는다. 상기한 비트 변환을 수행하기 위해서는 버스를 통해 전송되는 비트값에 비트 반전 여부를 판별하기 위한 1 비트 정보가 더 추가되지만, 원래 버스에서 발생될 수 있는 최대 비트 변화는 N/2이므로 버스 코딩 기법을 사용하지 않는 경우(최대 N의 변화 비트가 발생할 수 있음)보다는 전력 소모를 절감할 수 있다.Here, the
그러나 버스값을 인코딩할 때 N/2의 비트 변화는 실제 버스상에서 발생되는 비트 변화에서 상당히 많은 부분을 차지하고 있으며, 상기한 종래 버스 코딩 기법은 벡터거리 계산을 이용하므로 N/2 비트 변화가 가능한 버스값을 예측하는 것이 불가능하다. 따라서 종래 버스 코딩 기법으로는 N/2의 비트 변화를 갖는 버스값에 대해서는 그 변화율을 낮출 방법이 없으며, 이에 대한 해결책이 요망된다.However, when encoding bus values, bit changes of N / 2 occupy a considerable part of the bit changes occurring on the actual bus. Since the conventional bus coding technique uses vector distance calculation, a bus capable of changing N / 2 bits is used. It is impossible to predict the value. Therefore, there is no conventional method for reducing the change rate of a bus value having a bit change of N / 2 by the conventional bus coding technique, and a solution for this is desired.
본 발명은 VLSI 시스템에서 버스값의 비트 변화율을 최소화하여 전력 소모를 절감할 수 있는 어드레스 버스값의 코딩/디코딩 장치 및 방법을 제공한다.The present invention provides an apparatus and method for coding / decoding an address bus value that can reduce power consumption by minimizing a bit change rate of a bus value in a VLSI system.
또한 본 발명은 VLSI 시스템에서 버스값의 총 비트수의 절반보다 낮은 비트 변화율을 보장하는 어드레스 버스값의 코딩/디코딩 장치 및 방법을 제공한다.The present invention also provides an apparatus and method for coding / decoding an address bus value that guarantees a bit change rate lower than half of the total number of bits of a bus value in a VLSI system.
본 발명에 따른 저전력 대규모 집적 회로 시스템을 위한 버스 코딩 방법은 현재 버스값을 입력받아 0과 1의 비트수를 비교하여 상기 현재 버스값을 선택적으로 비트 반전하여 출력하는 과정과, 상기 선택적으로 비트 반전된 현재 버스값과 이전 버스값을 벡터적 연산하는 과정과, 상기 벡터적 연산된 비트값에 상기 비트 반전 여부를 지시하는 비트 정보를 덧붙여 해당 버스로 전송하는 과정을 포함함을 특징으로 한다. 그러므로, 본 발명의 버스 코딩/디코딩 방식은 현재 버스값을 통해 비트 변화율을 미리 알 수 있기 때문에 비트 변화율이 많은 어드레스를 미리 판단할 수 있다. 그러므로, 어드레스 맵을 정할 때 이를 고려하여 어드레스 중에서 비트 변화량이 많은 어드레스 값은 미리 제외함으로서 어드레스 버스에서의 비트 변화율을 최소화할 수 있다. 반면 데이터 버스는 출력값 자체가 랜덤(Random)하므로 종래 방식과 동일한 비트 변화율을 보인다.A bus coding method for a low power large scale integrated circuit system according to the present invention includes receiving a current bus value and comparing the number of bits between 0 and 1 to selectively bit invert the current bus value and outputting the bit selectively. And a step of vectorly calculating the current bus value and the previous bus value, and transmitting bit information indicating whether or not the bit is inverted to the vectored bit value to transmit to the corresponding bus. Therefore, in the bus coding / decoding method of the present invention, since the bit change rate can be known in advance through the current bus value, an address having a large bit change rate can be determined in advance. Therefore, when determining the address map, it is possible to minimize the bit change rate on the address bus by excluding an address value having a large amount of bit change among the addresses in advance. On the other hand, since the data bus itself is random, the data bus shows the same bit rate as the conventional method.
본 발명에 따른 저전력 대규모 집적 회로 시스템을 위한 어드레스 버스 디코딩 방법은 버스 라인을 통해 입력된 현재 버스값으로부터 비트 반전 여부를 지시하는 비트 정보를 제외한 비트값과 이전 버스값을 벡터적 연산하는 과정과, 상기 비트 정보를 근거로 상기 벡터적 연산된 비트값을 선택적으로 비트 반전하여 출력하는 과정을 포함함을 특징으로 한다.The address bus decoding method for a low power large scale integrated circuit system according to the present invention includes the steps of performing a vector operation on a bit value and a previous bus value excluding bit information indicating bit inversion from a current bus value input through a bus line; And selectively inverting and outputting the vectorized bit value based on the bit information.
본 발명에 따른 저전력 대규모 집적 회로 시스템을 위한 어드레스 버스 코딩 장치는 이전 버스값을 저장하는 이전 버스값 저장기와, 현재 버스값을 입력받아 0과 1의 비트수를 비교하여 비트 반전 여부를 지시하는 정보를 출력하는 다수 비트 판단기와, 상기 비트 정보를 근거로 상기 현재 버스값을 선택적으로 비트 반전하는 비트 반전기와, 상기 선택적으로 비트 반전된 현재 버스값과 상기 이전 버스값을 벡터적 연산하는 벡터적 연산기와, 상기 벡터적 연산된 비트값에 상기 비트 반전 여부를 지시하는 비트 정보를 덧붙여 해당 버스로 전송하는 출력 라인을 포함함을 특징으로 한다.An address bus coding apparatus for a low power large scale integrated circuit system according to the present invention includes a previous bus value store storing a previous bus value and information indicating whether bits are inverted by comparing the number of bits of 0 and 1 by receiving a current bus value. A multi-bit determiner for outputting a signal, a bit inverter for selectively bit inverting the current bus value based on the bit information, and a vector operator for vectorly calculating the selectively inverted current bus value and the previous bus value. And an output line for adding the bit information indicating whether the bit is inverted to the vectored bit value and transmitting the bit information to the corresponding bus.
본 발명에 따른 저전력 대규모 집적 회로 시스템을 위한 어드레스 버스 디코딩 장치는 이전 버스값을 저장하는 이전 버스값 저장기와, 버스 라인을 통해 입력 된 현재 버스값으로부터 비트 반전 여부를 지시하는 비트 정보를 제외한 비트값과 이전 버스값을 벡터적 연산하는 벡터적 연산기와, 상기 비트 정보를 근거로 상기 벡터적 연산된 비트값을 선택적으로 비트 반전하여 출력하는 비트 반전기를 포함함을 특징으로 한다.An address bus decoding apparatus for a low power large scale integrated circuit system according to the present invention includes a previous bus value store for storing a previous bus value, and a bit value excluding bit information indicating bit inversion from a current bus value input through a bus line. And a vector inverter for vectoring the previous bus value and a bit inverter for selectively bit inverting the vectored bit value based on the bit information.
이하 본 발명에 따른 바람직한 실시 예를 첨부한 도면을 참조하여 상세히 설명한다. 하기의 설명에서는 본 발명에 따른 동작을 이해하는데 필요한 부분만이 설명되며 그 이외 부분의 설명은 본 발명의 요지를 흩트리지 않도록 생략될 것이라는 것을 유의하여야 한다.Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the accompanying drawings. In the following description, only parts necessary for understanding the operation according to the present invention will be described, and the description of other parts will be omitted so as not to obscure the gist of the present invention.
먼저 본 발명의 기본 개념을 설명하면, 본 발명의 어드레스 버스 코딩 장치는 버스값을 구성하는 '0'과 '1'의 비트수가 동일한 경우 이전에 출력된 어드레스 버스값에 대한 현재 출력되는 어드레스 버스값의 비트 변화가 버스값의 총 비트수(N)의 절반이 되도록 어드레스 버스값의 코딩을 수행함을 특징으로 한다. 따라서 본 발명은 버스값에서 '0'과 '1'의 비트수가 동일한 경우를 제외한 버스값을 입력 버스값으로 사용할 경우 이전 어드레스 버스값에 대한 비트 변화를 종래 최대 비트 변화율인 N/2 보다 작아지도록 할 수 있다.First, the basic concept of the present invention will be described. In the address bus coding apparatus of the present invention, when the number of bits of '0' and '1' constituting the bus value is the same, the currently output address bus value with respect to the previously output address bus value The coding of the address bus value may be performed such that the bit change of the signal becomes half of the total number N of bus values. Therefore, when the bus value is used as an input bus value except when the number of bits of '0' and '1' is the same in the bus value, the bit change of the previous address bus value is smaller than the conventional maximum bit change rate N / 2. can do.
이하 도 3 및 도 4를 참조하여 본 발명의 버스 코딩 방식을 설명하기로 한다.Hereinafter, the bus coding scheme of the present invention will be described with reference to FIGS. 3 and 4.
도 3은 본 발명의 실시 예에 따른 VLSI 시스템에 구비되는 어드레스 버스 코 딩 장치의 구성을 나타낸 블록도이다.3 is a block diagram illustrating a configuration of an address bus coding apparatus included in a VLSI system according to an exemplary embodiment of the present invention.
도 3에서 이전 버스값 저장기(310)는 이전 시점에 발생된 N 비트의 이전 버스값(A’(n-1))을 벡터적 연산기(370)로부터 전달받아 저장하고, 시스템으로부터 클럭(CLK)이 인가될 때 이전 버스값(A’(n-1))을 벡터적 연산기(370)로 출력한다. 다수 비트 판단기(330)는 시스템으로부터 입력되는 현재 버스값(A(n))의 비트들에 ‘0’ 많은 경우와 ‘1’이 많은 경우를 구분하여 비트 반전기(350)의 동작을 위한 제어신호를 다르게 출력한다.In FIG. 3, the previous
본 실시 예에서 상기 다수 비트 판단기(330)는 현재 버스값(A(n))의 비트들에 ‘0’의 비트가 많으면 비트 반전기(350)로 출력되는 제어신호로 ‘0’을 출력하고, ‘1’의 비트가 많으면 비트 반전기(350)로 출력되는 제어신호로 ‘1’을 출력한다. 그리고 ‘0’과 ‘1’의 비트 개수가 같을 경우 다수 비트 판단기(330)는 ‘0’과 ‘1’ 중 어떤 제어신호를 출력하여도 무관하며, 본 실시 예에서는 '0'을 출력하는 것으로 가정하기로 한다.In the present exemplary embodiment, the
또한 상기 다수 비트 판단기(330)로부터 출력되는 1 비트의 제어신호는 비트 반전기(350)뿐만 아니라 출력 버스값((B(n))의 최상위 비트(MSB)로도 사용된다. 본 실시 예에서 다수 비트 판단기(330)의 제어신호는 편의상 최종 출력 버스값(B(n))의 최상위 비트(MSB)에 위치되는 것으로 가정하였으나 최하위 비트(LSB) 등 미리 정해진 다른 위치에 사용하는 것도 가능하다.In addition, the 1-bit control signal output from the
도 3에서 비트 반전기(350)는 다수 비트 판단기(330)로부터 ‘0’의 제어신호가 인가되면, 현재 버스값(A(n))을 그대로 출력하고, ‘1’의 제어신호가 인가되 면, 현재 버스값(A(n))을 일의 보수 형태로 변환하여 출력한다. 벡터적 연산기(370)는 이전 버스값 저장기(310)로부터 전달된 이전 버스값((A’(n-1)))과 비트 반전기(350)로부터 전달된 버스값의 대응되는 비트들끼리 벡터적(xor) 연산을 수행하여 N 비트의 비트값(A'(n))을 출력한다.In FIG. 3, when the control signal of '0' is applied from the
도 3의 어드레스 버스 코딩 장치를 통해 인코딩된 출력 버스값(B(n))은 상기 벡터적(xor) 연산된 비트값에 다수 비트 판단기(330)의 출력을 최상위 비트(MSB)로 덧붙인 N+1 비트의 비트값이다. 그리고 상기 벡터적(XOR) 연산된 비트값은 이전 버스값 저장기(310)로 전달되어 이전 버스값으로 저장된다.The output bus value B (n) encoded by the address bus coding apparatus of FIG. 3 is N by adding the output of the
도 4는 본 발명의 실시 예에 따른 어드레스 버스 코딩 방법을 나타낸 순서도로서, 도 4의 순서도를 참조하여 도 3의 버스 코딩 장치의 동작을 설명하기로 한다.FIG. 4 is a flowchart illustrating an address bus coding method according to an exemplary embodiment of the present invention. An operation of the bus coding apparatus of FIG. 3 will be described with reference to the flowchart of FIG. 4.
401 단계에서 시스템으로부터 현재 버스값(A(n))이 입력되면, 403 단계에서 다수 비트 판단기(330)는 현재 버스값(A(n))의 비트들 중 '0' 비트가 많은지 '1' 비트가 많은지 판단하여 '0'의 비트 수가 '1'의 비트 수 보다 많거나 같은 경우 비트 반전기(350)로 예컨대, '0'의 제어신호를 출력하고, 405 단계로 진행한다.When the current bus value A (n) is input from the system in
405 단계에서 다수 비트 판단기(330)로부터 '0'의 제어신호를 입력받은 비트 반전기(350)는 입력된 현재 버스값(A(n))을 그대로 출력한다. 반면 상기 403 단계에서 '0'의 비트 수가 '1'의 비트 수 보다 적은 경우 다수 비트 판단기(330)는 비트 반전기(350)로 예컨대, '0'의 제어신호를 출력하고, 407 단계로 진행한다. 407 단계에서 다수 비트 판단기(330)로부터 '1'의 제어신호를 입력받은 비트 반전기 (350)는 입력된 현재 버스값(A(n))의 각 비트들을 일의 보수 형태로 변환하여 출력한다.In
409 단계에서 벡터적 연산기(370)는 상기 405 단계 또는 407 단계에 따라 그대로 전달되거나 또는 반전되어 전달된 현재 비트값과 이전 버스값 저장기(310)로부터 전달된 이전 비트값의 대응되는 비트들에 대해 벡터적(XOR) 연산을 수행하여 N 비트의 비트값을 출력한다. 이후 도 3의 버스 코딩 장치는 다수 비트 판단기(330)의 출력이 최상위 비트(MSB)로 덧붙여진 벡터적(XOR) 연산된 비트값을 N+1 비트의 버스값(B(n))을 출력하고, 출력된 버스값은 해당 버스를 통해 후술할 도 5의 버스 디코딩 장치로 전달된다.In
도 3 및 도 4의 실시 예에서 예컨대 이전 어드레스 버스값이 “1100”이고, 현재 버스값이 “0001”인 경우 다수 비트 판단기(330)의 출력은 ‘0’이 되며, 현재 어드레스 버스값은 반전없이 이전 버스값과 함께 벡터적 연산기(370)로 전달되고, 벡터적(XOR) 연산된 출력값은 “1101”이 된다. 즉 최상위 비트를 제외하고 최종 출력된 비트값은 이전 버스값에 비해 단지 한 비트의 출력변화를 가진다. 이는 현재 버스값에 ‘0’이 많을수록 이전 버스값에 대한 출력 비트값의 비트 변화를 최소화할 수 있다는 것을 의미한다. 왜냐하면 벡터적 연산에서 ‘0’의 입력은 다른 입력을 단지 버퍼링시킨다는 의미로 해석되기 때문이다. 반대로 현재 버스값에 ‘1’이 많을 때는 다수 비트 판단기(330)의 출력은 ‘1’이 될 것이고, 이 경우에도 현재 비트값은 비트 반전기(350)를 통해 ‘0’이 많은 형태로 변환되므로 이전 버스값에 대한 출력 비트값의 비트 변화를 최소화하게 된다.3 and 4, for example, when the previous address bus value is “1100” and the current bus value is “0001,” the output of the
따라서 본 발명에 의한 어드레스 버스 코딩 방법을 사용할 경우 최상위 비트로 추가되는 1 비트를 제외한 버스에서 발생할 수 있는 최대 비트 변화는 N/2이 되며, 사용 가능한 어드레스 버스값에서 '0'과 '1'의 비트수가 동일한 경우를 제외한 나머지 버스값을 입력 버스값으로 사용할 경우 이전 버스값에 대한 비트 변화를 종래 최대 비트 변화율인 N/2 보다 낮출 수 있다.Therefore, when using the address bus coding method according to the present invention, the maximum bit change that can occur on the bus except 1 bit added as the most significant bit becomes N / 2, and bits of '0' and '1' in the available address bus values. When the remaining bus values are used as input bus values except when the number is the same, the bit change with respect to the previous bus value may be lower than the conventional maximum bit change rate N / 2.
이하 도 5 및 도 6을 참조하여 본 발명의 버스 디코딩 방식을 설명하기로 한다.Hereinafter, the bus decoding method of the present invention will be described with reference to FIGS. 5 and 6.
도 5는 본 발명의 실시 예에 따른 VLSI 시스템에 구비되는 어드레스 버스 디코딩 장치의 구성을 나타낸 블록도이다.5 is a block diagram illustrating a configuration of an address bus decoding apparatus included in a VLSI system according to an exemplary embodiment of the present invention.
도 5에서 이전 버스값 저장기(510)는 이전 클럭에 입력된 N+1 비트의 입력 버스값으로부터 최상위 비트(MSB)를 제외한 나머지 N 비트의 버스값을 이전 버스값(A’(n-1))으로 저장하고, 시스템으로부터 클럭(CLK)이 인가될 때 이전 버스값(A’(n-1))을 벡터적 연산기(530)로 출력한다. 벡터적 연산기(530)는 이전 버스값 저장기(510)로부터 전달된 이전 버스값(A’(n-1))과, 입력 버스 라인을 통해 전달되어 최상위 비트가 제거된 N 비트의 현재 입력 버스값을 입력받아 대응되는 비트들끼리 벡터적(XOR) 연산을 수행하여 N 비트의 비트값을 출력한다.In FIG. 5, the previous bus
도 5의 비트 반전기(550)는 N+1 비트의 입력 버스값(A(n))으로부터 분리된 1 비트의 최상위 비트(MSB)를 제어신호로 전달받는다. 그리고 상기 제어신호를 근거로 비트 반전기(550)는 벡터적 연산기(530)로부터 입력된 비트값의 반전 출력 여부를 결정한다. 본 실시 예에서 비트 반전기(550)는 상기 제어신호가 ‘0’이면 입력 된 비트값을 그대로 출력하며, 상기 제어신호가 ‘1’이면 입력된 비트값을 일의 보수 형태로 변환하여 출력 버스값(B(n))으로 최종 출력한다. 도 5의 어드레스 버스 디코딩 장치는 상기한 구성을 통해 어드레스를 통해 전달된 비트값을 원래 비트값으로 복원하게 된다.The
도 6은 본 발명의 실시 예에 따른 어드레스 버스 디코딩 방법을 나타낸 순서도로서, 도 6의 순서도를 참조하여 도 5의 버스 디코딩 장치의 동작을 설명하기로 한다.FIG. 6 is a flowchart illustrating an address bus decoding method according to an exemplary embodiment of the present invention. An operation of the bus decoding apparatus of FIG. 5 will be described with reference to the flowchart of FIG. 6.
먼저 도 6의 601 단계에서 버스 디코딩 장치는 이전 클럭의 입력 버스값으로부터 최상위 비트(MSB)를 제외한 나머지 버스값을 이전 버스값 저장기(510)에 저장한다. 이후 603 단계에서 벡터적 연산기(530)는 다음 클럭에서 입력 버스 라인을 통해 전달된 현재 버스값(A'(n))과 이전 버스값 저장기(510)로부터 전달된 이전 버스값(A'(n-1))을 입력받아 대응되는 비트들끼리 벡터적(XOR) 연산을 수행하여 N 비트의 비트값을 출력한다.First, in
이후 605 단계에서 비트 반전기(550)는 버스 라인으로부터 제어신호로 인가된 현재 버스값의 최상위 비트(MSB)를 근거로 벡터적 연산기(530)로부터 입력된 비트값의 반전 출력 여부를 결정한다. 이때 비트 반전기(550)는 현재 버스값의 최상위 비트(MSB) ‘1’이면, 607 단계로 진행하여 벡터적(XOR) 연산된 비트값을 일의 보수 형태로 비트 반전하여 출력하고, 현재 버스값의 최상위 비트(MSB) ‘1’이면, 609 단계로 진행하여 입력된 비트값을 그대로 출력하여 도 3의 버스 코딩 장치를 통해 인코딩된 비트값을 원래 비트값으로 복원한다.Thereafter, in
상기한 본 발명의 버스 코딩/디코딩 방법은 동일한 비트간의 벡터적(XOR) 연산은 ‘0’인 특징을 이용한 것이다. 즉 본 발명에 의하면, 현재 입력 버스값이 주어지면, 현재 출력 버스값의 비트 변화를 바로 예측할 수 있으며, 이러한 본 발명의 특징은 버스값의 어드레스 맵을 정할 때 이용할 수 있다. 예를 들어 본 출원인의 실험에 의하면, VLSI 시스템에서 2비트, 4비트, 6비트, 8비트 어드레스의 경우 전체 어드레스에서 ‘0’과 ‘1’의 비트 수가 동일한 어드레스가 차지하는 비율이 각각 50%, 38%, 31%, 27% 정도로 상당한 비중을 차지함을 알 수 있다.In the above-described bus coding / decoding method of the present invention, a vector-to-bit (XOR) operation between the same bits uses '0'. That is, according to the present invention, given the current input bus value, it is possible to immediately predict the bit change of the current output bus value, and this feature of the present invention can be used to determine the address map of the bus value. For example, according to the experiments of the applicant, in the VLSI system, in the case of 2-bit, 4-bit, 6-bit, and 8-bit addresses, 50% of the addresses occupy the same number of bits of '0' and '1' in all addresses, 38%, 31%, and 27% account for a considerable proportion.
따라서 실제 VLSI 시스템의 하드웨어 설계 시 주어진 어드레스 비트를 모두 사용하는 경우는 거의 발생되지 않으므로 하드웨어 어드레스 맵을 설정할 때 ‘0’과 ‘1’의 비트 수가 동일한 어드레스는 사용하지 않도록 버스 코딩 장치의 입력 버스값을 설정하거나 ‘0’과 ‘1’의 비트 수가 큰 값부터 어드레스를 할당함으로서 버스에서의 비트 변화를 최소화할 수 있다. 만일 ‘0’과 ‘1’의 비트 수가 동일한 어드레스를 입력 버스값으로 사용하지 않고 본 발명의 어드레스 버스 코딩을 수행할 경우 최상위 비트로 추가된 1 비트를 제외한 최대 비트 변화는 N/2-1이 된다. 따라서 본 발명에 의한 어드레스 버스 코딩 기법이 종래의 어드레스 버스 코딩에 비해 더 좋은 성능을 보장해 줄 수 있게 된다.Therefore, in the hardware design of the actual VLSI system, almost all of the given address bits are rarely used. Therefore, when setting the hardware address map, the input bus value of the bus coding apparatus is used so that the same number of bits of '0' and '1' are not used. You can minimize the bit change on the bus by setting or assigning an address from a value with a large number of bits between '0' and '1'. If the address bus coding of the present invention is performed without using an address having the same number of bits as '0' and '1' as an input bus value, the maximum bit change except for one bit added as the most significant bit becomes N / 2-1. . Therefore, the address bus coding scheme according to the present invention can ensure better performance than conventional address bus coding.
이상 설명한 바와 같이 본 발명에 의하면, VLSI 시스템에서 어드레스 버스값의 비트 변화율을 최소화하여 전력 소모를 절감할 수 있다.As described above, according to the present invention, power consumption may be reduced by minimizing a bit change rate of an address bus value in a VLSI system.
또한 본 발명에 의하면, VLSI 시스템에서 버스값의 총 비트수의 절반 보다 낮은 비트 변화를 보장하는 어드레스 버스 코딩/디코딩 방식을 제공할 수 있다.In addition, according to the present invention, it is possible to provide an address bus coding / decoding scheme that guarantees a bit change lower than half of the total number of bits of a bus value in a VLSI system.
Claims (12)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020060020164A KR101311617B1 (en) | 2006-03-02 | 2006-03-02 | Method and apparatus of address bus coding/decoding for low-power very large scale integration system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020060020164A KR101311617B1 (en) | 2006-03-02 | 2006-03-02 | Method and apparatus of address bus coding/decoding for low-power very large scale integration system |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20070090447A KR20070090447A (en) | 2007-09-06 |
KR101311617B1 true KR101311617B1 (en) | 2013-09-26 |
Family
ID=38688847
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020060020164A KR101311617B1 (en) | 2006-03-02 | 2006-03-02 | Method and apparatus of address bus coding/decoding for low-power very large scale integration system |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101311617B1 (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100933667B1 (en) | 2007-11-02 | 2009-12-23 | 주식회사 하이닉스반도체 | Semiconductor memory device with bus inversion technology |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100435215B1 (en) * | 1999-12-30 | 2004-06-09 | 삼성전자주식회사 | Bus encoding/decoding apparatus and method |
-
2006
- 2006-03-02 KR KR1020060020164A patent/KR101311617B1/en active IP Right Grant
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100435215B1 (en) * | 1999-12-30 | 2004-06-09 | 삼성전자주식회사 | Bus encoding/decoding apparatus and method |
Non-Patent Citations (1)
Title |
---|
국외학술지논문 * |
Also Published As
Publication number | Publication date |
---|---|
KR20070090447A (en) | 2007-09-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7538696B2 (en) | System and method for Huffman decoding within a compression engine | |
US20070242508A1 (en) | Low power balance code using data bus inversion | |
KR20140088319A (en) | Method for compressing data and devices using the method | |
WO2019214141A1 (en) | Coding method and device, and readable storage medium | |
KR100969748B1 (en) | Method and apparatus for transmitting/receiving serial data in serial communication system and serial communication system thereof | |
WO2019214140A1 (en) | Coding method, device and readable storage medium | |
KR101311617B1 (en) | Method and apparatus of address bus coding/decoding for low-power very large scale integration system | |
US9077606B2 (en) | Data transmission device, data reception device, and data transmission method | |
KR101653468B1 (en) | Data inversion coding apparatus and method | |
JP2009503927A (en) | 4-level logic decoder | |
CN115114209B (en) | Signal transmitting apparatus, transmitting and receiving system, and transmitting and receiving method | |
CN111970007B (en) | Decoding method, decoder, device and medium | |
US6925592B2 (en) | Turbo decoder, turbo encoder and radio base station with turbo decoder and turbo encoder | |
JP2009009289A (en) | Semiconductor memory device | |
US7170431B2 (en) | Data transmitting circuit and method based on differential value data encoding | |
KR101370606B1 (en) | Bus encoding device to minimize the switching and crosstalk delay | |
US8166219B2 (en) | Method and apparatus for encoding/decoding bus signal | |
KR20210063011A (en) | OR-network Bus Encoding Apparatus and Method for Low-Pover Two-Burst Data Transfer | |
US20020099673A1 (en) | Coding and memorizing method for fuzzy logic membership functions and corresponding method and circuit architecture for calculating the membership degree | |
WO2007059645A1 (en) | Signal transition feature based coding for serial link | |
KR100946177B1 (en) | Apparatus and method transmitting - receivering data | |
JP6695813B2 (en) | Dedicated arithmetic coding instruction | |
TW201440046A (en) | Decoding circuit and associated encoding method and decoding method | |
CN112462845B (en) | Data transmission clock control circuit, method and processor | |
KR102684403B1 (en) | Logic circuit, encoder including the same, and method for generating control signal using the same |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
AMND | Amendment | ||
AMND | Amendment | ||
E601 | Decision to refuse application | ||
AMND | Amendment | ||
J201 | Request for trial against refusal decision | ||
B701 | Decision to grant | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20160830 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20170830 Year of fee payment: 5 |
|
FPAY | Annual fee payment |
Payment date: 20180830 Year of fee payment: 6 |