반도체/전자공학 기초

Serializing & Parallelizing : MUX와 DEMUX의 개념과 역할

코라자비 2024. 9. 24. 16:33

 

 

오늘은 디지털 회로의 가장 중요한 회로 중 하나인 MUX 와 DEMUX 에 대해 다뤄보겠습니다. MUX 는 multiplexer, DEMUX 는 demultiplexer 의 줄임말입니다. 각각 신호를 더 작은 수의 신호로 압축시켜 보내거나 혹은 더 많은 수의 신호로 풀어서 보내는 역할을 하죠. 그럼 먼저 MUX 에 대해 보겠습니다.

 

 

MUX 구조

 

간단한 MUX 의 block diagram 을 보죠. 위와 같이 input 신호는 a,b,c,d 로 총 4 개 그리고 output 신호는 q 로 1개입니다. 4개의 신호를 1개의 신호로 압축시켜 보냈으니 MUX 구조입니다. (4-to-1 mux 구조라고도 하죠) 이 때 이 MUX 는 총 2개의 select 신호를 통해 어떤 input 을 output 으로 내보낼 지를 선택하게 되죠. 예를 들어, {a,b} = {0,0} 인 경우에는 A 신호를 output 으로, {0,1} 인 경우에는 B 신호를 output 으로, 이런식으로 동작하게 됩니다.

회로는 이런식으로 간단하게 inverter 와 nand 그리고 nor 로 구성할 수 있습니다. input 개수에 맞춰 게이트 개수만 늘려주면 8-to-1 mux, 8-to-2 mux 등을 설계할 수 있죠. 

 

 

DEMUX 구조

이번엔 간단한 DEMUX 의 block diagram 을 봅시다. 위와 같이 input 신호는 1개 그리고 output 신호는 a,b,c,d 로 4 개로 구성되어 있습니다. 1개의 신호를 4개의 신호로 풀어서 보냈으니 DEMUX 구조입니다. (1-to-4 demux 구조라고 합니다) 이 때 이 DEMUX 는 총 2개의 select 신호를 통해 어떤 output 으로 input 신호를 보낼지 결정합니다. 예를 들어, {a,b} = {0,0} 인 경우에는 input 신호를 output A로, {0,1} 인 경우에는 input 신호를 output B 로, 이런식으로 동작하게 됩니다. 

회로는 이런식으로 간단하게 inverter 와 nand 그리고 nor 로 구성할 수 있습니다. input 개수에 맞춰 게이트 개수만 늘려주면 MUX 때와 마찬가지로 input 개수와 output 개수를 바꿀 수 있습니다. 

 

 

 

MUX 와 DEMUX 의 역할 - Serializing & Parallelizing

 

 

이러한 MUX 와 DEMUX 의 주된 역할은 바로 Serializing 과 Parallelizing 입니다. 바로 P2S, S2P 동작을 하는거죠. 일반적으로 회로는 스피드가 빠를수록 power 를 기하급수적으로 사용하게 됩니다. 또한 high-speed 로 동작할수록 설계에 훨씬 더 많은 노력을 필요로 하죠. 그렇기 때문에 high-speed 동작이 필요한 I/O interface 단을 제외하고 내부 동작은 더 느린 속도로 동작하길 원합니다. Power 측면에서도 훨씬 더 유리할 뿐만 아니라 설계 난이도도 훨씬 쉬워지기 때문이죠.

위와 같이 IO 단이 10GHz 로 동작해야한다고 해봅시다. 이는 1CLK 의 period 가 100ps 밖에 안 될 정도로 매우매우 빠른 속도입니다. 이 속도로 동작하도록 회로 내부를 설계하는 것은 불가능에 가깝습니다. 따라서 우리는 IO 단에 매우 가깝에 MUX 를 두고 내부 회로는 동작 speed 를 낮추게 됩니다. 위와 같이 2-to-1 MUX 를 사용하는 경우에는 내부 동작을 5GHz 까지 낮출 수 있습니다. 따라서 MUXing 을 더 많이 하면, 즉 Serializing 을 더 많이 하면 내부 speed 를 낮출 수 있죠. 내부 회로의 개수를 10 개로 늘려 10-to-1 MUXing 을 하게 된다면 내부 동작을 1GHz 까지 speed 를 낮출 수 있습니다. 이 때 muxing 동작을 하는 것이므로 내부 A,B 블락에서 신호를 생성해 output driver 로 output 을 내보내게 됩니다.

 

 

반대로 내부 동작을 통해 내부 신호로 IO 동작을 해야될 때를 보겠습니다. 이 때는 DEMUXing 동작을 하는 것이므로 IO driver 에서 input 을 받아 내부 블락으로 쏴주게 됩니다. 이 동작은 보다 더 빠른 신호를 느린 신호로 바꿔주는 Parallelizing 역할을 합니다. 외부 신호를 안에서 더 느린 신호로 동작할 수 있도록 하죠. DEMUX 는 결국 StoP, Serial to parallel 역할을 합니다.

결국 우리는 MUX 와 DEMUX 둘 다를 사용해 외부 IO driver 는 가장 빠른 속도로 동작하고 내부 블락들은 보다 더 낮은 스피드로 동작하게 설계할 수 있습니다. 이 때 MUX 와 DEMUX 는 각각 독립적으로 동작해야하므로, floating driver 를 사용합니다. 그래야 사용하지 않을 때 floating 상태로 만들어 MUX 할 때 DEMUX 동작을 방해하지 않고, DEMUX 할 때 MUX 동작을 방해하지 않죠. 이상입니다.

반응형