KR100203907B1 - 병렬 데이타 비트 카운터 - Google Patents

병렬 데이타 비트 카운터 Download PDF

Info

Publication number
KR100203907B1
KR100203907B1 KR1019960052250A KR19960052250A KR100203907B1 KR 100203907 B1 KR100203907 B1 KR 100203907B1 KR 1019960052250 A KR1019960052250 A KR 1019960052250A KR 19960052250 A KR19960052250 A KR 19960052250A KR 100203907 B1 KR100203907 B1 KR 100203907B1
Authority
KR
South Korea
Prior art keywords
bit
output
value
sorting
data
Prior art date
Application number
KR1019960052250A
Other languages
English (en)
Other versions
KR19980034254A (ko
Inventor
류명선
Original Assignee
김영환
현대전자산업주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 김영환, 현대전자산업주식회사 filed Critical 김영환
Priority to KR1019960052250A priority Critical patent/KR100203907B1/ko
Priority to US08/960,227 priority patent/US5995029A/en
Publication of KR19980034254A publication Critical patent/KR19980034254A/ko
Application granted granted Critical
Publication of KR100203907B1 publication Critical patent/KR100203907B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/60Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
    • G06F7/607Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers number-of-ones counters, i.e. devices for counting the number of input lines set to ONE among a plurality of input lines, also called bit counters or parallel counters
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • YGENERAL 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
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99937Sorting

Landscapes

  • Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Analysis (AREA)
  • Computing Systems (AREA)
  • Pure & Applied Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Logic Circuits (AREA)

Abstract

본 발명은 병렬 데이터 비트 카운터에 관한 것으로, 특히 병렬로 입력되는 데이터의 특정 비트 카운팅을 비트 소터 방식을 이용하여 '하이' 비트 영역과 '로우' 비트 영역으로 각각 소팅하고, 상기 소팅이 완료된 데이터를 캐스터를 이용하여 상기 '하이' 비트 영역과 '로우' 비트 영역의 경계를 검출한 다음 '하이' 비트의 갯수를 2진수로 부호화 함으로써, 종래 여러 단의 덧셈기 동작과 캐리를 위한 셋-업 타임의 소요로 인해 카운팅 속도가 저하되었던 것을 방지하는 효과가 있다.

Description

병렬 데이터 비트 카운터
본 발명은 병렬 데이터 비트 카운터에 관한 것으로, 특히 병렬로 입력되는 데이터의 특정 비트 카운팅을 비트 소터(sorter) 방식과 캐스터를 이용하여 고속으로 카운팅 하도록 하는 병렬 데이터 비트 카운터에 관한 것이다.
일반적으로 외부에서 입력되는 n 비트 량을 가지는 병렬 데이터의 특정 레벨의 비트를 계수하는 방식은 직렬 카운터로 1비트씩 카운팅을 하거나, 혹은 덧셈기를 이용하여 계수하고 있다.
그러나 상기와 같은 방식은 직렬 카운터를 이용할 경우 상기 n 비트량에 해당하는 n 클럭 펄스수가 소요되는 문제가 있고, 덧셈기를 이용하는 경우는 log2n 클럭 펄스수가 소요되는 문제가 있어 전체 계수 시간이 상당히 지연되는 문제점이 있다.
제1a도는 본 발명에 의한 소터의 개념을 나타내는 심볼도.
제1b도는 본 발명에 의한 소터의 기본 회로도.
제2도는 본 발명에 의한 소터를 통해 4비트 병렬 데이터를 소팅하는 과정을 설명하는 개략도.
제3도는 본 발명에 의한 소터를 통해 6비트 병렬 데이터를 소팅하는 과정을 설명하는 개략도.
제4도는 본 발명에 의한 소터를 통해 8비트 병렬 데이터를 소팅하는 과정을 설명하는 개략도.
제5도는 본 발명에 따른 캐스터의 상세 회로도.
제6도는 본 발명의 소터에 적용되는 소팅 방식의 일예를 나타내는 예시도.
제7도는 본 발명의 소터에 적용되는 소팅 방식의 다른 예를 나타내는 예시도.
* 도면의 주요부분에 대한 부호의 설명
10 : 검출부 20 : 이진 부호화부
NAND : 낸드 게이트 NOR, NOR1 ~ NOR5 : 노아 게이트
INV1 ~ INV14 : 인버터
본 발명은 상기에 기술한 바와 같은 종래 문제점을 해결하기 위해, 로직 게이트의 조합으로 데이터 비트의 레벨을 소팅하여 '하이'비트 영역과, '로우'비트 영역의 경계를 검출한 후, 상기 검출된 '하이' 비트의 갯수와 '로우' 비트의 갯수를 계수하므로써, 외부에서 병렬로 입력된 데이터에서 특정 레벨 값을 고속으로 계수하는데 본 발명의 목적이 있다.
상기와 같은 목적을 달성하기 위해 본 발명에서는 비트 소터 방식을 이용하여 '하이' 비트 영역과 '로우' 비트 영역을 소팅하고, 상기 소팅이 완료된 데이터를 캐스터를 이용하여 상기 '하이' 비트 영역과 '로우' 비트 영역의 경계를 검출한 다음 '하이' 비트의 갯수를 2진수로 부호화 하는 것이다.
상기와 같이 동작되도록 하는 본 발명의 비트 카운터는 병렬로 입력되는 데이터에서 특정 레벨 값을 가지는 비트 수를 카운팅하는 카운터에 있어서, 상기 병렬로 입력되는 데이터의 n 비트(n은 자연수) 수에 따라 n개의 입/출력을 가지며, 상기 입력된 데이터를 '하이'비트 영역과, '로우'비트 영역으로 구분하여 소팅을 행하는 소터와; 상기 소터를 통해 소팅된 데이터와 '하이'비트 영역과, '로우'비트 영역의 경계를 검출하는 검출부와, 상기 검출부를 통해 출력된 데이터에서 '하이' 비트의 갯수를 이진수로 부호화 하는 이진 부호화부를 포함하여, 상기 소터의 n 비트의 출력에 대응하는 n개의 입/출력을 가지는 캐스터를 포함하는 것을 특징으로 한다.
상술한 목적 및 특징들, 장점은 첨부된 도면과 관련한 다음의 상세한 설명을 통하여 보다 분명해 질 것이다. 이하 첨부된 도면을 참조하여 본 발명의 실시예를 상세히 설명하면 다음과 같다.
본 발명은 2-비트 소터를 특정 소팅 알고리즘에 따라 배열함으로써, 임의의 데이터 량을 갖는 병렬 데이터에서 특정 비트를 계수하도록 하였는 바, 상기 2-비트 소터의 특징을 도면을 참조하여 설명하면 제1a도에 도시된 바와 같이, 이는 2-비트 소터의 심볼을 나타내는 도면으로, 두 개의 입력(D0, D1)과 두 개의 출력(Y0, Y1)이 있을 때 상기 입력(D0, D1)을 임의의 2그룹으로 나누고, 이 각각의 그룹을 소팅하는 것이다.
이때 소팅시 2그룹 중 하위 그룹의 값이 상위 그룹의 값보다 높은 레벨의 값이면 이 값을 상위 그룹의 값과 교체한다. 이때 도면에서 이를 나타내는 표시는 '↓'이다.
표 1은 상기와 같이 동작하는 2-비트 소터의 진리값을 나타낸 진리표로, D0에서 '1'이 입력되고 D1에서 '0'가 입력된 경우에는 상기와 같은 원리에 따라 출력 Y0가 '0'가 되고, 반대로 출력 Y1이 '1'이 됨을 볼 수 있다.
또한, 상기와 같은 입/출력 형태를 부울 대수로 나타내면 다음과 같이 나타낼 수 있다.
상기와 같은 부울 대수를 가지는 로직 게이트를 이용한 2-비트 소터의 회로도는 제1(b)도와 같이 도시할 수 있는 바, 두 개의 입력신호(D0, D1)를 낸드 연산하는 낸드 게이트(NAND)와; 상기 낸드 게이트(NAND)의 출력을 반전시켜 최종값을 출력(Y0)하는 인버터(INV1)와; 상기 두 개의 입력신호(D0, D1)를 노아 연산하는 노아 게이트(NOR); 및 상기 노아 게이트(NOR)의 출력을 반전시켜 최종값을 출력(Y1)하는 인버터(INV2)를 포함한다.
이와 같은 기본 회로를 병렬 데이터의 입력 비트 수에 따라 동일하게 증가시켜 사용하며, 이를 특정 소팅 알고리즘에 적용시켜 병렬로 입력되는 데이터를 '하이' 비트 영역과 '로우' 비트 영역으로 소팅하는 방법을 설명하면 하기와 같다.
먼저 소팅의 단계 및 종류를 보면, 첫째는 데이터 버스를 임의의 2그룹으로 나눈 후 각각의 그룹을 소팅하는 프리 소팅(pre sorting)을 행하고; 상기 프리 소팅(pre sorting)이 완료되면 둘째로 하위 그룹의 최상위 비트(MSB)와 상위 그룹의 최하위 비트(LSB)를 2-비트 소팅한 다음, 각 그룹 내에서 차례로 인접한 비트를 선택하여 소팅하는 그룹 소팅(group sorting)을 행하며; 마지막으로 상기 그룹 소팅이 완료된 값을 이용해 상위 그룹과 하위 그룹을 각각 소팅하는 포스트-소팅(post sorting)을 행하는 바, 이때 포스트 소팅은 상기 프리 소팅과 동일한 방식으로 행한다.
그리고 상기 각 소팅은 한가지 방식의 소팅내 그룹에서 상기 적용된 모든 소팅 방식을 적절하게 실행한다.
상기와 같은 각 소팅과정을 4비트 데이터 입력시와, 8비트 데이터 입력시 및 8비트 데이터 입력을 예로 들어 설명하면, 제2도는 4비트 데이터를 소팅하는 단계를 도시한 것으로, 4비트 데이터(D0 ~ D3)를 두 개의 그룹(D0, D1 / D2, D3)으로 나눈 후, 상기 각 그룹에서 소팅을 행하는 바, D0와 D1을 비교하여 D0의 값이 D1보다 큰 값이면 두 값을 교체하고, D2와 D3도 동일한 방법으로 비교한다.
상기와 같이 소팅된 값을 다시 그룹 소팅을 행하는 바, 먼저 하위 그룹의 최상위 비트(D1)와 상위 그룹의 최하위 비트(D2)를 상기와 같은 방식으로 비교한 다음, 상기 그룹에서 차례로 인접한 비트(D0와 D3)를 비교한다.
그 다음은 상기 그룹 소팅이 완료된 데이터에 대해 포스트 소팅을 행하는데 이는 상기 프리 소팅과 동일한 과정을 거친다.
제3도는 6비트 데이터를 소팅하는 단계를 도시한 것으로, 6비트 데이터(D0 ~D5)를 두 개의 그룹(D0, D1, D2 / D3, D4, D5)으로 나눈 후, 상기 각 그룹에서 소팅을 행하는 바, D0와 D1을, D1과 D2를, 비교한 다음 상기 D1의 값이 변했을 가능성이 있으므로 다시 한번 D0와 D1을 비교한다.
또한 상위 그룹에 대해서도 상기와 동일하게 각 비교(D4와 D5, D3와 D4, D4와 D5)를 행한다.
상기와 같이 소팅된 값을 다시 그룹 소팅을 행하는 바, 먼저 하위 그룹의 최상위 비트(D2)와 상위 그룹의 최하위 비트(D3)를 상기와 같은 방식으로 비교한 다음, 상기 그룹에서 차례로 인접한 비트(D1와 D4, D0와 D5)를 비교한다.
그 다음은 상기 그룹 소팅이 완료된 데이터에 대해 포스트 소팅을 행하는데 이는 상기 프리 소팅과 동일한 과정을 거친다.
제4도는 8비트 데이터를 소팅하는 단계를 도시한 것으로, 8비트 데이터(D0 ~ D7)를 두 개의 그룹(D0, D1, D2, D3, /D4, D5, D6, D7)으로 나눈 후, 상기 각 그룹에서 소팅을 행하는 바, D0와 D1을, D2와 D3를, 비교한 다음 상기 D1의 값이 변했을 가능성이 있으므로 다시 한번 D1와 D2을 비교하며, D0와 D3, D0와 D1, D2와 D3도 동일하게 다시 한번 비교한다.
또한 상위 그룹에 대해서도 상기와 동일하게 각 비교(D4와 D5, D6와 D7, D5와 D6, D4와 D7, D4와 D5, D6와 D7)를 행한다.
이와 같이 소팅된 값을 다시 그룹 소팅을 행하는 바, 먼저 하위 그룹의 최상위 비트(D3)와 상위 그룹의 최하위 비트(D4)를 상기와 같은 방식으로 비교한 다음, 상기 그룹에서 차례로 인접한 비트(D2와 D5, D1와 D6, D0와 D7)를 비교한다.
그 다음은 상기 그룹 소팅이 완료된 데이터에 대해 포스트 소팅을 행하는데 이는 상기 프리 소팅과 동일한 과정을 거친다.
상기와 같은 각 소팅 과정을 거쳐 출력된 값(Y0 ~ Y3, Y0 ~ Y5, Y0 ~Y7)을 이용해 외부에서 입력된 병렬 데이터에서 특정 비트수를 계수하는 과정을 보면, 이는 제5도에 도시된 바와 같은 캐스터를 이용하는 바. 이 캐스터는 상기에서 소팅된 데이터의 '하이' 비트 영역과 '로우' 비트 영역의 경계를 검출하는 검출부(10)와, 상기 검출부(10)를 통해 출력된 데이터에서 '하이' 비트의 갯수를 이진수(binary number)로 부호화 하는 이진 부호화부(20)를 포함한다.
상기 검출부(10)는 상기에서 제시한 소팅 방법을 통해 출력된 Y0, Y1, Y2, Y3값을 입력받으며, 상기 Y0값(제1값)과 인버터(INV3)를 통한 Y1값(제2값)을 입력받아 노아 연산을 행하여 최상위 비트 값을 출력하는 노아 게이트(NOR1)와; Y1갑(제2값)과 인버터(INV4)를 통한 Y2값(제3값)을 입력받아 노아 연산을 행하여 최상위 비트 값-1 비트값을 출력하는 노아 게이트(NOR2)와; Y2값(제3값)과 인버터(INV5)를 통한 U3값(제4값)을 입력받아 노아 연산을 행하여 최상위 비트 값-2 비트값을 출력하는 노아 게이트(NOR3)와; 상기 Y0값을 반전시켜 출력하는 인버터(INV6)와; 상기 노아 게이트(NOR1)에서 출력된 신호를 반전시켜 출력하는 인버터(INV7)와; 상기 노아 게이트(NOR2)에서 출력된 신호를 반전시켜 출력하는 인버터(INV8)와; 상기 노아 게이트(NOR3)에서 출력된 신호를 반전시켜 출력하는 인버터(INV9)와; 및 상기 노아 게이트(INV5)에서 출력된 값을 다시 반전시는 인버터(INV10)를 포함한다.
그리고 상기 검출부(10)는 상기 소터와 마찬가지로 소터에서 출력되는 값의 비트 수에 따라 상기와 유사한 구성을 연속으로 연결하여 회로의 출력단을 설계하는데, 이는 즉 소터에서 출력되는 n개의 비트에 대응되는 n개의 출력단으로 회로를 구현한다는 것이며, 상기 각 인버터(INV6, INV7, INV8, INV9, INV10)의 출력은 회로의 확장용으로 사용된다.
상기 이진 부호화부(20)는 상기 Y0의 값을 연속적으로 반전시켜 출력하므로써 타 출력과의 동기를 확립하여 최종적인 최상위 비트 데이터를 출력하는 복수개의 인버터(INV11, INV12)와; 상기 노아 게이트(NOR1)에서 출력된 신호와 노아 게이트(NOR2)에서 출력된 두 신호를 입력받아 노아 연산하는 노아 게이트(NOR4)와; 상기 노아 게이트(NOR4)에서 출력된 신호를 반전시켜 최종적인 최상위 비트-1 데이터를 출력하는 인버터(INV13)와; 노아 게이트(NOR1)에서 출력된 신호와 노아 게이트(NOR3)에서 출력된 두 신호를 입력받아 노아 연산하는 노아 게이트(NOR5); 및 상기 노아 게이트(NOR5)에서 출력된 신호를 반전시켜 최종적인 최상위 비트-2 데이터를 출력 인버터(INV14)를 포함한다.
그리고 상기 이진 부호화부(20) 역시 상기 검출부(10)의 출력 비트 수에 따라 상기 E1, E2 신호 출력과 유사한 회로를 연결하여 회로의 출력단을 설계하는데, 이때 이진 부호화부(20)의 출력단 증가는 상기 검출부에서 출력되는 n개의 비트에 대응되는 m개(m은 2m=n)의 출력단으로 연속 구현하여 m비트 데이터를 출력하도록 구현한다.
상기와 같은 동작의 결과값을 나타낸 진리표는 다음과 같다.
또한, 상기와 같은 캐스터의 동작에 따라 출력되는 값을 부울 대수로 표현하면 다음과 같다.
상기와 같이 구성된 캐스터와 2-비트 소터를 이용한 소팅 알고리즘을 통해 실제로 병렬 데이터의 '하이'비트 갯수를 카운팅하는 예를 들어 설명하면 다음과 같다.
4비트 병렬 데이터를 예로 들기로 한다.
입력 데이터가 D0 =0, D1 =1, D2 =1, D3 = 0라고 하면, 이 데이터는 비트 소터를 통해 다음과 같이 소팅된다.
먼저 프리 소팅을 행하면 D0, D1 그룹과, D2, D3 그룹이 나뉘어지고, 여기서 각 그룹내의 데이터 비교에 의해 데이터가 '0101'로 바뀌게 된다.
상기와 같이 변화된 데이터에 대해 다시 그룹 소팅을 행하게 되면 데이터는 '0011'로 바뀌게 되고, 상기 그룹 소팅에 의해 바뀐 데이터에 대해 다시 한번 포스트 소팅을 하게 되는데 이는 상기 프리 소팅과 동일한 방식으로 데이터를 비교하는 바, 포스트 소팅이 완료되면서 모든 소팅이 완료된다.
상기 소팅이 완료된 결과 값(Y0, Y1, Y2, Y3)은 '0011'이 되며, 이를 캐스터에 입력하면, '하이' 비트 와 '로우' 비트의 경계를 검출하는 검출부(10)의 출력은 B0 = 0, B1 = 0, B2 = 1, B3 =0 로 출력되며, 이 값을 이진 부호화(20)에 입력하면 E0 = 0, E1 = 1, E2 = 0 값으로 출력된다.
이 값을 십진수로 바꾸어 보면 2가 된다. 즉 현재 입력된 4비트의 데이터에는 '하이' 값이 2개가 들어있다는 의미이다.
이와같은 방식으로 입력된 병렬 데이터에서 특정 레벨의 값을 갖는 비트가 몇 개인지 고속으로 카운팅하는 것이다.
제6도는 상기 2-비트 소터에 적용되는 소팅 방식의 다른 예를 나타낸 도면으로, 이는 삽입(insertion) 소트에 의한 4비트 병렬 데이터를 소팅하는 일예이다.
4비트가 입력되는 데이터 버스를 하위 비트에서부터 계속 연속되도록 2비트(D0/D1, D1/D2, D2/D3)씩 비교하여 하위비트의 값이 상위비트의 값보다 크면, 상기 하위비트 값을 상위비트 값과 교체하며, 모든 입력버스에 대해 비교가 완료되면 다시 상기 비교에 의해 값이 변할 수 있는 곳을 재 비교하는 바, 이는 맨 마지막 버스를 제외하고 모든 버스에 대해 비교(D0/D1, D1/D2)를 행하면 된다.
그 다음 상기 비교가 완료되면 다시 상기 비교에 의해 값이 변할 수 있는 곳을 재 비교하는 바, 이는 마지막 버스에서 하나를 제외한 버스까지 수행하는 것이며, 이러한 방식을 첫 번째 버스만(D0/D1) 재비교가 될 때까지 반복 수행한다.
이때 상기 소팅을 통해 출력된 값(Y0, Y1, Y3, Y4)은 상기와 동일하게 캐스터에 입력해 '하이' 비트 값을 카운팅한다.
제7도는 상기 2-비트 소터에 적용되는 소팅 방식의 또 다른 예를 나타낸 도면으로, 이는 선택(selection) 소트에 의한 4비트 병렬 데이터를 소팅하는 일예이다.
4비트가 입력되는 데이터 버스를 최하위 비트와 최상위 비트와 비교(D0/D3)하여 하위비트의 값이 상위비트의 값보다 크면, 상기 하위비트 값을 상위비트 값과 교체하며, 그 다음 최하위 비트-1 비트(D1)에 해당하는 비트와 최상위 비트(D3)를 비교하고, 이를 계속 반복하여 최상위 비트-1(D2) 비트와 최성위 비트(D3)를 비교할 때 까지 수행한다.
그런 다음 상기 비교가 완료되면 다시 상기 비교에 의해 값이 변할 수 있는 곳을 재 비교하는 바, 이는 최하위 비트(D0)와 최상위 비트-1비트(D2)를 비교하며, 상기 최상위 비트-1비트(D2)를 기준으로 하여 상기 방식과 동일하게 비교 수행한다.
상기 비교가 완료되면 다시 상기 비교에 의해 값이 변할 수 있는 곳을 재 비교하는 바, 이는 맨마지막에 최하위 비트(D0)와 최하위 비트-1비트(D1)가 비교 수행될 때까지 반복 수행하는 것이다.
이때 상기 소팅을 통해 출력된 값(Y0, Y1, Y3, Y4)은 상기와 동일하게 캐스터에 입력해 '하이' 비트 값을 카운팅한다.
아울러 본 발명에 의해 동작되는 병렬 데이터 비트 카운터는 병렬로 입력되는 데이터의 특정 레벨 값의 비트를 빠른 속도로 계수하는 동작을 필요로 하는 모든 전자 회로에 사용가능한 바, 그 예를 들면 디지털 카메라(digital camera), 광자 카운터(photon counter), 스캐너(scanner), 팩시밀리(facsimile), 신경망 프로세서(neural processor)와 디지털 프로세서(digital processor)간의 인터페이스 등 각종 센서 배열(sensor arrar)의 데이터로서 2진 데이터의 합산기에 적용할 수 있으며, 랜덤 수 발생기와 결합하여 이항 분포를 가지는 랜덤 수를 발생시키는 이항분포 랜덤수 발생기(Binomially Distributed Random Nomber Generator)에 적용할 수 있고, 더 나아가 병렬 포트를 사용하는 데이터 통신에서 에러 수집 코드(error correction code)에 적용할 수 있다.
이상에서 상세히 설명한 바와 같이 본 발명은 병렬로 입력되는 데이터에서 특정 레벨 값을 가지는 비트를 카운팅할 시 2-비트 소터를 이용한 소팅을 행한 후, 상기 값을 캐스터에 입력하여 특정 값을 카운팅 하도록 함으로써, 종래 여러단의 덧셈기 동작과 캐리를 위한 셋-업 타임의 소요로 인해 카운팅 속도가 저하되었던 것을 방지하는 효과가 있다.
아울러 본 발명의 바람직한 실시예들은 예시의 목적을 위해 개시된 것이며, 당업자라면 본 발명의 사상과 범위안에서 다양한 수정, 변경, 부가 등이 가능할 것이며, 이러한 수정 변경 등은 이하의 특허 청구의 범위에 속하는 것으로 보아야 할 것이다.

Claims (13)

  1. 병렬로 입력되는 데이터에서 특정 레벨 값을 가지는 비트 수를 카운팅하는 카운터에 있어서, 상기 병렬로 입력되는 데이터의 n비트(n은 자연수) 수에 따라 n개의 입/출력을 가지며, 상기 입력된 데이터를 '하이' 비트 영역과 '로우' 비트 영역으로 구분하여 소팅을 행하는 소터와; 상기 소터를 통해 소팅된 데이터의 '하이' 비트 영역과 '로우' 비트 영역의 경계를 검출하는 검출부와, 상기 검출부를 통해 출력된 데이터에서 '하이' 비트의 갯수를 이진수로 부호화 하는 이진 부호화부를 포함하여, 상기 소터의 n 비트의 출력에 대응하는 n 개의 입/출력을 가지는 캐스터를 포함하는 것을 특징으로 하는 병렬 데이터 비트 카운터.
  2. 제1항에 있어서, 상기 소터는 n 비트의 데이터가 입력되면, 이를 n/2 그룹으로 나눈 후 각각의 그룹에 대해 2-비트 소팅(프리 소팅)을 반복 수행하고; 상기 소팅이 완료되면 하위 그룹의 최상위 비트와 상위 그룹의 최하위 비트를 2-비트 소팅한 다음, 각 그룹 내에서 차례로 인접한 비트를 선택하여 소팅(그룹 소팅)을 행하며; 상기 소팅이 완료된 값을 이용해 상위 그룹과 하위 그룹에 대해 각각 2-비트 소팅(포스트 소팅)을 반복 수행하는 것을 특징으로 하는 병렬 데이터 비트 카운터.
  3. 제2항에 있어서, 상기 프리 소팅 과정은 n/2의 각 그룹에 대해 하위 비트와 이와 인접한 상위 비트를 비교하여 하위 비트의 값이 인접한 상위 비트의 값보다 높은 레벨값이면 각 값을 교체하고; 상기 비교에 의해 값이 변하게 된 부분의 재 소팅을 위해 상기 각 그룹내에서 상기 그룹 소팅을 수행하며; 상기 소팅이 완료되면 마지막으로 상기 소팅에 의해 값이 변하게 된 부분의 재 소팅을 위해 각 그룹에 대해 상기 그룹 소팅 전의 소팅을 반복 수행하는 것을 특징으로 하는 병렬 데이터 비트 카운터.
  4. 제2항에 있어서, 상기 포스트 소팅 과정은 상기 프리 소팅 과정과 동일한 과정으로 소팅되는 것을 특징으로 하는 병렬 데이터 비트 카운터.
  5. 제2항 및 제4항의 어느 한 항에 있어서, 상기 소터의 각 소팅 과정에서 행해지는 2-비트 소팅은 두 개의 입력신호를 낸드 연산하는 낸드 게이트와; 상기 낸드 게이트의 출력을 반전시켜 제1출력 값을 출력하는 인버터와; 상기 두 개의 입력신호를 노아 연산하는 노아 게이트, 및 상기 노아 게이트의 출력을 반전시켜 제2출력 값을 출력하는 인버터(INV2)를 포함하는 2-비트 소터를 통해 수행되는 것을 특징으로 하는 병렬 데이터 비트 카운터.
  6. 제5항에 있어서, 상기 2-비트 소터를 각 소팅 방식에 따라 다단 조합하여 n비트 소터를 구현하는 것을 특징으로 하는 병렬 데이터 비트 카운터.
  7. 제1항에 있어서, 상기 소터는 n 비트로 입력되는 데이터를 하위 비트에서부터 계속 연속되도록 2비트씩 비교하여 하위 비트의 값이 상위 비트의 값보다 크면, 상기 하위비트 값을 상위비트 값과 교체하며; 모든 입력 데이터에 대해 비교가 완료되면 다시 상기 비교에 의해 값이 변하게 된 부분의 재 소팅을 위해 맨 마지막 데이터를 제외하고 모든 데이터에 대해 비교를 행하고; 그 다음 상기 비교가 완료되면 다시 상기 비교에 의해 값이 변하게 된 부분의 재 소팅을 위해 마지막 데이터에서 하나를 제외한 데이터까지 비교를 수행하며; 상기 과정을 첫 번째 데이터와 그 다음 데이터가 재 비교 될 때까지 반복 수행하는 삽입 소팅을 행하는 것을 특징으로 하는 병렬 데이터 비트 카운터.
  8. 제7항에 있어서, 상기 소터의 각 소팅 과정에서 행해지는 2-비트 소팅은 두 개의 입력신호를 낸드 연산하는 낸드 게이트와; 상기 낸드 게이트의 출력을 반전시켜 제1 출력 값을 출력하는 인버터와; 상기 두 개의 입력신호를 노아 연산하는 노아 게이트; 및 상기 노아 게이트의 출력을 반전시켜 제2 출력 값을 출력하는 인버터(INV2)를 포함하는 2-비트 소터를 통해 수행되는 것을 특징으로 하는 병렬 데이터 비트 카운터.
  9. 제1항에 있어서, 상기 소터는 n 비트로 입력되는 데이터 중 최상위 비트를 기준으로 하여 최하위 비트부터 차례로 2비트씩 데이터를 비교하며, 비교결과 최상위 비트 값이 각 하위비트의 값보다 작으면, 상기 각 하위비트 값을 최상위 비트 값과 교체하고; 그다음은 다시 상기 비교에 의해 값이 변하게 된 부분의 제 소팅을 위해 최상위 비트-1 비트를 기준으로 하여 각 하위비트들과 데이터를 연속 비교해 값을 교체하며; 이반복 과정을 최하위 비트-1 비트와 최하위 비트가 비교될때까지 수행하는 선택 소팅을 행하는 것을 특징으로 하는 병렬 데이터 비트 카운터.
  10. 제9항에 있어서, 상기 소터의 각 소팅 과정에서 행해지는 2-비트 소팅은 두 개의 입력신호를 낸드 연산하는 낸드 게이트와; 상기 낸드 게이트의 출력을 반전시켜 제1 출력 값을 출력하는 인버터와; 상기 두 개의 입력신호를 노아 연산하는 노아 게이트; 및 상기 노아 게이트의 출력을 반전시켜 제2 출력 값을 출력하는 인버터(INV2)를 포함하는 2-비트 소터를 통해 수행되는 것을 특징으로 하는 병렬 데이터 비트 카운터.
  11. 제7항 또는 제9항에 있어서, 상기 2-비트 소터를 각 소팅 방식에 따라 다단 조합하여 n 비트 소토를 구현하는 것을 특징으로 하는 병렬 데이터 비트 카운터.
  12. 제1항에 있어서, 상기 검출부는 상기 소터를 통해 출력된 값 중 제1값과 제1 인버터를 통한 제2값을 입력받아 노아 연산을 행하여 최상위 비트 값(n)을 출력하는 제1 출력단과; 제2값과 제2 인버터를 통한 제3값을 입력받아 노아 연산을 행하여 최상위 비트-1 비트(n-1) 값을 출력하는 제2출력단과; 제3값과 제3인버터를 통한 제4값을 입력받아 노아 연산을 행하여 최상위비트-2 비트(n-2)값을 출력하는 제3출력단과; 상기 제1값을 반전시켜 출력하는 제4인버터와; 상기 제1노아게이트에서 출력된 신호를 반전시켜 출력하는 제5 인버터와; 상기 제2 노아 게이트에서 출력된 신호를 반전시켜 출력하는 제6 인버터와; 상기 제3 노아 게이트에서 출력된 신호를 반전시켜 출력하는 제7 인버터; 및 상기 제3 인버터에서 출력된 값을 다시 반전시키는 제8 인버터를 포함하며, 상기 각 출력단은 소터에서 출력되는 n 개의 비트에 대응되는 n개의 출력단으로 연속 구현하여 n비트 데이터를 출력하는 것을 특징으로 하는 병렬 데이터 비트 카운터.
  13. 제1항에 있어서, 상기 이진 부호화부는 상기 제1값을 연속적으로 반전시켜 출력함으로써 타 출력과의 동기를 확립하여 최종적인 최상위 비트 데이터(n)를 출력하는 복수개의 인버터와; 상기 검출부의 제1 출력단에서 출력된 신호와 제2 출력단에서 출력된 두 신호를 입력받아 노아 연산을 행하는 노아 게이트와; 상기 제4 출력단에서 출력된 신호를 반전시켜 최종적인 최상위 비트-1 비트(n-1) 데이터를 출력하는 제4 출력단과; 상기 검출부의 제1 출력단에서 출력된 신호와 제3 출력단에서 출력된 두 신호를 입력받아 노아 연산하는 노아 게이트; 및 상기 노아 게이트에서 출력된 신호를 반전시커 최종적인 최상위 비트-2 비트(n-2) 데이터를 출력하는 제5 출력단을 포함하며, 상기 각 출력단은 상기 검출부에서 출력되는 n개의 비트에 대응되는 m개(m은 2m=n)의 출력단으로 연속 구현하여 m비트 데이터를 출력하는 것을 특징으로 하는 병렬 데이터 비트 카운터.
KR1019960052250A 1996-11-06 1996-11-06 병렬 데이타 비트 카운터 KR100203907B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1019960052250A KR100203907B1 (ko) 1996-11-06 1996-11-06 병렬 데이타 비트 카운터
US08/960,227 US5995029A (en) 1996-11-06 1997-10-29 Parallel bit counter using bit sorters

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019960052250A KR100203907B1 (ko) 1996-11-06 1996-11-06 병렬 데이타 비트 카운터

Publications (2)

Publication Number Publication Date
KR19980034254A KR19980034254A (ko) 1998-08-05
KR100203907B1 true KR100203907B1 (ko) 1999-06-15

Family

ID=19480923

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019960052250A KR100203907B1 (ko) 1996-11-06 1996-11-06 병렬 데이타 비트 카운터

Country Status (2)

Country Link
US (1) US5995029A (ko)
KR (1) KR100203907B1 (ko)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6516330B1 (en) * 1999-12-01 2003-02-04 International Business Machines Corporation Counting set bits in data words
US6668298B1 (en) * 1999-12-29 2003-12-23 Intel Corporation Shifting an input signal from a high-speed domain to a lower-speed domain
KR20000054275A (ko) * 2000-05-30 2000-09-05 장주욱 입력에 따라 능동적으로 재구성 가능한 고속 병렬 덧셈기
US7136888B2 (en) * 2000-08-04 2006-11-14 Arithmatica Limited Parallel counter and a logic circuit for performing multiplication
US20050021585A1 (en) * 2000-08-04 2005-01-27 Dmitriy Rumynin Parallel counter and a logic circuit for performing multiplication
US6883011B2 (en) 2000-08-04 2005-04-19 Arithmatica Limited Parallel counter and a multiplication logic circuit
GB2365636B (en) * 2000-08-04 2005-01-05 Automatic Parallel Designs Ltd A parallel counter and a multiplication logic circuit
GB2373602B (en) * 2001-03-22 2004-11-17 Automatic Parallel Designs Ltd A multiplication logic circuit
US7260595B2 (en) * 2002-12-23 2007-08-21 Arithmatica Limited Logic circuit and method for carry and sum generation and method of designing such a logic circuit
WO2004064254A2 (en) * 2003-01-14 2004-07-29 Arithmatica Limited A logic circuit
US7042246B2 (en) * 2003-02-11 2006-05-09 Arithmatica Limited Logic circuits for performing threshold functions
US7308471B2 (en) 2003-03-28 2007-12-11 Arithmatica Limited Method and device for performing operations involving multiplication of selectively partitioned binary inputs using booth encoding
GB2401962B (en) * 2003-05-23 2005-05-18 Arithmatica Ltd A sum bit generation circuit
DE102005011666B3 (de) * 2005-03-14 2006-06-29 Infineon Technologies Ag Carry-Ripple-Addierer
JP2008546542A (ja) * 2005-05-18 2008-12-25 プレジデント・アンド・フエローズ・オブ・ハーバード・カレツジ マイクロ流体ネットワークにおける伝導通路、マイクロ回路、マイクロ構造の製造
US8560586B2 (en) * 2010-03-29 2013-10-15 Meltin Bell Linear bit counting implementations

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4456884A (en) * 1981-11-16 1984-06-26 Sri International Phase-lock loop and Miller decoder employing the same
US4636753A (en) * 1984-05-15 1987-01-13 Communications Satellite Corporation General technique for the integration of MIC/MMIC'S with waveguides
JPS61112401A (ja) * 1984-07-20 1986-05-30 Nec Corp 超高周波スイツチ
JPS6173424A (ja) * 1984-09-19 1986-04-15 Hitachi Ltd 2値デ−タ変換方式
JP2800233B2 (ja) * 1989-03-10 1998-09-21 株式会社日立製作所 Ad変換器
IT1237302B (it) * 1989-11-30 1993-05-27 Vinicio Vercellone Elemento base per la rete di connessione di un nodo di commutazione veloce di cella.
US5220581A (en) * 1991-03-28 1993-06-15 International Business Machines Corporation Digital data link performance monitor
ATE240579T1 (de) * 1996-03-21 2003-05-15 Toshiba Kk Datenanordnungsverfahren und medium zur datenaufzeichnung oder -transfer, und signalverarbeitungsgerät für das verfahren und das medium

Also Published As

Publication number Publication date
KR19980034254A (ko) 1998-08-05
US5995029A (en) 1999-11-30

Similar Documents

Publication Publication Date Title
KR100203907B1 (ko) 병렬 데이타 비트 카운터
KR100217531B1 (ko) 이진 데이타 필드에서 선행 0 또는 1의 양을 결정하기 위한 방법 및 장치
US4163211A (en) Tree-type combinatorial logic circuit
KR960042416A (ko) 최대값 선택회로
US5091874A (en) Encoder apparatus
US7050647B2 (en) Median filter
US4954978A (en) Priority order decomposing apparatus
RU2638724C1 (ru) Устройство для коррекции порядка при нормализации чисел
RU2233024C2 (ru) Способ и устройство для сжатия сигналов в формате с фиксированной запятой без введения смещения
KR950006354B1 (ko) 비교회로
SU1128251A1 (ru) Устройство дл сравнени двоичных чисел
KR950012114B1 (ko) 최상위 1논리 저장번지 검출방법 및 그 회로
JPH11102284A (ja) 選別方法および選別回路
GB2180083A (en) Non-volatile electronic counters
JP2005165502A (ja) Lut符号化方法及びlut符号化装置並びにlutカスケード論理回路
CN1230987C (zh) 码生成电路
JP4772210B2 (ja) 調停制御方法および回路
JPH0736149B2 (ja) シフトフラグ生成回路
EP0431570A2 (en) Logical circuit
CN117667010A (zh) 用于电路的二进制数的前导零个数确定方法和电路
KR0154934B1 (ko) 개선된 2의 보수회로
KR100360871B1 (ko) 디지탈비교회로
JPH0779247B2 (ja) デコ−ド回路
SU991409A1 (ru) Устройство дл определени количества единиц в двоичном числе
SU1195346A1 (ru) Устройство дня выделения максимального числа

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: 20120222

Year of fee payment: 14

LAPS Lapse due to unpaid annual fee