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

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

Info

Publication number
KR19980034254A
KR19980034254A KR1019960052250A KR19960052250A KR19980034254A KR 19980034254 A KR19980034254 A KR 19980034254A KR 1019960052250 A KR1019960052250 A KR 1019960052250A KR 19960052250 A KR19960052250 A KR 19960052250A KR 19980034254 A KR19980034254 A KR 19980034254A
Authority
KR
South Korea
Prior art keywords
bit
output
value
sorting
data
Prior art date
Application number
KR1019960052250A
Other languages
English (en)
Other versions
KR100203907B1 (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/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • 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
    • 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 클럭 펄스수가 소요되는 문제가 있어 전체 계수 시간이 상당히 지연되는 문제점이 있다.
도 1(A)는 본 발명에 의한 소터의 개념을 나타내는 심볼도.
도 1(B)는 본 발명에 의한 소터의 기본 회로도.
도 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-비트 소터의 특징을 도면을 참조하여 설명하면 제 1(A)도에 도시된 바와 같이, 이는 2-비트 소터의 심볼을 나타내는 도면으로, 두개의 입력(D0, D1)과 두개의 출력(Y0, Y1)이 있을때 상기 입력(D0, D1)을 임의의 2그룹으로 나누고, 이 각각의 그룹을 소팅하는 것이다.
이때 소팅시 2그룹 중 하위 그룹의 값이 상위 그룹의 값보다 높은 레벨의 값이면 이 값을 상위 그룹의 값과 교체한다. 이때 도면에서 이를 나타내는 표시는 '↓' 이다.
표 1은 상기와 같이 동작하는 2-비트 소터의 진리값을 나타낸 진리표로, D0에서 '1'이 입력되고 D1에서 '0'가 입력된 경우에는 상기와 같은 원리에 따라 출력 Y0가 '0'가 되고, 반대로 출력 Y1이 '1'이 됨을 볼 수 있다.
[표 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)를 통한 Y3 값(제 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]
진리표
또한, 상기와 같은 캐스터의 동작에 따라 출력되는 값을 부울 대수로 표현하면 다음과 같다.
상기와 같이 구성된 캐스터와 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 array)의 데이타로서 2진 데이타의 합산기에 적용할 수 있으며, 랜덤 수 발생기와 결합하여 이항 분포를 가지는 랜덤 수를 발생시키는 이항분포 랜덤 수 발생기(Binomially Distributed Random Number 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 true KR19980034254A (ko) 1998-08-05
KR100203907B1 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)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20000054275A (ko) * 2000-05-30 2000-09-05 장주욱 입력에 따라 능동적으로 재구성 가능한 고속 병렬 덧셈기

Families Citing this family (15)

* 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
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

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20000054275A (ko) * 2000-05-30 2000-09-05 장주욱 입력에 따라 능동적으로 재구성 가능한 고속 병렬 덧셈기

Also Published As

Publication number Publication date
US5995029A (en) 1999-11-30
KR100203907B1 (ko) 1999-06-15

Similar Documents

Publication Publication Date Title
KR100203907B1 (ko) 병렬 데이타 비트 카운터
US4163211A (en) Tree-type combinatorial logic circuit
KR100217531B1 (ko) 이진 데이타 필드에서 선행 0 또는 1의 양을 결정하기 위한 방법 및 장치
KR0156152B1 (ko) 최대값 선택회로
US5122979A (en) Method and a digital electronic device for the evaluation of an extremum of a set of binary encoded data words
US5091874A (en) Encoder apparatus
EP0135290B1 (en) Analog-to-digital-converter and related encoding technique
US7050647B2 (en) Median filter
EP0217009A2 (en) Thermometer-to-adjacent binary encoder
CN112417474A (zh) 一种随机数双比特检验的优化实现方法及其装置
US4954978A (en) Priority order decomposing apparatus
KR101540539B1 (ko) 논리 게이트를 이용한 크기 비교기
US20090055454A1 (en) Half Width Counting Leading Zero Circuit
KR950012114B1 (ko) 최상위 1논리 저장번지 검출방법 및 그 회로
US6446101B1 (en) Apparatus for fast determination of a prescribable number of highest value signals
KR950006354B1 (ko) 비교회로
JPH11102284A (ja) 選別方法および選別回路
SU1128251A1 (ru) Устройство дл сравнени двоичных чисел
CN117667010A (zh) 用于电路的二进制数的前导零个数确定方法和电路
RU213104U1 (ru) Компаратор двоичных чисел в последовательном коде
US3346730A (en) Signed ternary carry generator using threshold logic elements
EP0431570A2 (en) Logical circuit
KR0154934B1 (ko) 개선된 2의 보수회로
SU1195346A1 (ru) Устройство дня выделения максимального числа
SU987616A1 (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