레지스터의 연결은 단일 버스로 연결된 경우와 병렬 버스로 연결된 경우를 생각할 수 있다. 병렬 버스 전송의 경우 버스 내 선의 개수와 레지스터를 구성하는 플립플롭의 개수가 일치해야 한다. 단일 버스로 전송되는 경우에는 버스로 사용하는 회선이 한 개이므로 1비트 신호인 제어신호를 전송하거나 직렬 전송만이 가능하다. 여러 개의 레지스터가 단일 버스에 연결되어 데이터를 전송하고 수신하려면 디코더 또는 멀티플렉서와 디멀티플렉서의 연결을 추가해서 선택적으로 처리하도록 할 수 있다.
디코더를 활용한 단일 버스 연결
레지스터 네 개에서 단일 버스를 통해 데이터를 공동으로 전송하고자 하는 경우에는 레지스터를 선택하기 위해 2비트가 입력되는 디코더를 사용한다. [ 그림 6-18 ] 은 네 개의 레지스터 R1~ R4가 디코더가 연결된다. 그리고 입력과 출력은 단일 버스에 연결된 것을 확인할 수 있다. 선택 신호 x와 y가 디코더에서 D0 ~ D3의 출력 중 하나를 선택하여 거기에 연결된 레지스터를 활성화시키면, 버스에서 전해온 데이터를 레지스터가 수신할 수 있고 버스를 통하여 다른 곳으로 전송할 수도 있다.
[ 그림 6-18 ]
멀티플렉서와 디멀티플렉서의 단일 버스 연결
여러 개의 레지스터 중 선택된 하나의 레지스터에 단일 버스가 수신되는 방법으로, 디멀티플렉서 회로를 사용한다. [ 그림 6-179]는 디멀티플렉서 회로를 연결한 것으로 선택 신호에 의해 디멀티플렉서 회로의 출력 D0~ D3가 생성되므로 이를 직접 레지스터에 연결하여 수신하도록 한다. 따라서 버스의 입력 데이터를 지정한 레지스터에만 정확히 전달할 수 있다. 만약, 여러 비트로 된 레지스터이면 이동 동작이 병행되어야 한다
반대로 레지스터에 저장된 데이터를 단일 버스로 송신할 때는 멀티플렉서를 사용한다. [ 그림 6-20 ] 은 레지스터 네 개가 멀티플렉서를 통하여 단일 회선인 버스에 연결된 것을 나타낸 것이다. x와 y가 지적하는 회로에 의해 R1~R4 중 하나가 선택되고, 선택된 레지스터는 버스로 데이터를 출력한다. 레지스터가 만약 여러 비트이면 이동 기능을 사용하여 1비트씩 직렬 이동이 되도록 해야 한다.
[ 그림 6-19 ] [ 그림 6-20 ]