������������������ ������������������� ��������������������� ��������
���������������� ������������� �� ��������������
�������������
����������������� ��������� ������ �� ���� !"#���$%�� ��&� ��'(� ������ ������� ���� &� �� )� )���*��+����#��","�"� -����!$�&���."�#�/ ��'(� ���0� ��'(� ���0!�� )�/"1� �����������!"#���2�����#//��+������2%��� ��� 3'(���+��#��+� ��'(� ������ ����!"#�4���5��+��+� �+� 6� ����� �� ���� ���$%�� ��&� �#//������ ����!//&����'(�6� $�� �1�� ���������"+�����4�7��+�� ����������������� ����� �'�� �����������*89:;<=>:-� ?����$%�� ��&� �� )� )���� )�( �1�������������'�� 34�%����( �+� 6� $1(�� )� )�����������#��","7���(� �
�'����?� �����34�1��/� �+��7�����2����� �'��@>A:�B�CD::DEEFG�HI�J�KL<<DME>:G�NO>PQ9<DM�JM;A=<D;<9MD�R�J�S9L:<=<L<=TD�JQQM>L;A�UQG�VW=<=>:XG�Y>MZL:�[L9\PL::E�K9]I�!"#/� �+�� �̂� �'����$1(�1������ �� ��(� ���2��!�"+ �����.��'(�� �'(���#��/����_�/��?�� &��?2 +����( &���� $�� �1������������������ �����1�����̀ ��� ���/��4 !"# �"1(��!�" ��.+��%(�� ����,.�a��0����������� ��(� ���2��!�"+ �����.��'(�6���#��/���
�� ���� !"#����������������� ����$1(�_�/��?� �����34�1�� 2#��a���'��b��2����+����#��","�"� � YcKd� �̂��"��� $�� �1� �'(� 2��� YcKd� �^������������������ ������# �$� ecdO� $1( &��?�7� +��� 7�+)�/)���� ���#��/���a��0�?��#�/ /'�� ���� ���2���1���2�1���!$�� �'����&� ������������'(�6� �'(���#��/����_�/�� ��(� ���/�� � $�� �1�&�����/�����+� �'(� !"#���� ���#��&� �'����
���a��0�?���3������������������ ��������� ,.� �1������1$��0#?�������!//� 2�����#� ��'�� � 2��2���"� ������.�$� � 2��2���"����� ���2#��������!//7�$�� � 2�!//,���*O>P]=:L<=>:�B>Z=;�O=M;9=<-�!"#�� 2�!//"%���/�*dDf9D:<=Lg�O=M;9=<-����2���1��,.� �1������1��#�/���5���'� ��a��0���0�!�� )�/"1&� ��+����#��","�"� ���?������( ���+��
!��������"#��� ������$������%������� �����
�#//������ �����$�(�7������ �����#��/�����+����#��","�"� � [DF]>LMW� 2�����Y>:=<>M� ��'(� �������#//�Y9g<=PDW=L�!"#�'(��1��������$�� �1��� ���� � �"+���������2%��!��������$%�� ��7� �̂�
• ��+����#��","�"� �*OKh-
• ����4��*[DF]>LMWG�Y>9EDG�D<;iI-
������������������ ������������������� ��������������������� ����U���
���������������� ������������� �� ��������������
• ��$��4��*H=EQgLFG�KM=:<DMG�D<;i-
• ��+������2%���*eLPG�H=Ej�HM=TDG�OHG�D<;i-
• �#// ��'�&+����+� 7��k����+����#��/�+� 6� �"+��1�2#�.� 3'(���+� &����/��+����#��","�"� � �
��a������'(����!"#��/�4��,+���#//�����ll�5�+� 6� *HL<L�QL<AG�O>:<M>g-� )�( ���$%�� ���+� 6� �"+��1� �̂���( $1(��� �"+���� ?������������������ ����
������������&'�(����%���)*+,-./,01*�23,�4-/50,3/,.-3
�����`��)�m�n!����$�(�7������,.���̀ ����'���!��� ��������2#��̀ ����!����?3���0�3����. * 3+�� ��0�� O-� 2��������!���2#�.�!�"����7� "��� �^���0�!�� )�/"1�!"#��!�����0�!�� )�/"1 �"+������ 2� �.�!�"�!�� )� /"� �^�� ��0� ��'(� � ��'�YL;A=:D�O>WD�?�$1(�4�*� !� ?����&�� "+� -
swap(int v[], int k)ı{int temp;ı temp = v[k];ı v[k] = v[k+1];ı v[k+1] = temp;ı}
swap:ı muli $2, $5,4ı add $2, $4,$2ı lw $15, 0($2)ı lw $16, 4($2)ı sw $16, 0($2)ı sw $15, 4($2)ı jr $31
00000000101000010000000000011000ı00000000100011100001100000100001ı10001100011000100000000000000000ı10001100111100100000000000000100ı10101100111100100000000000000000ı10101100011000100000000000000100ı00000011111000000000000000001000
Binary machineılanguageıprogramı(for MIPS)
C compiler
Assembler
Assemblyılanguageıprogramı(for MIPS)
High-levelılanguageıprogramı(in C)
������������������ ������������������� ��������������������� ��������
���������������� ������������� �� ��������������
2��"��05#�����`��)�m�n!���� �"+��� �/�+���!���$1(�1���o/�/��0�)1 ��'���������� �'(��.�!�"�� ���7� "���� !"#� !�� )� /"�� !"��� ��0� ��'(� � �"+��2#�.��%��7���#��","���+����#��","�"� � ��2� ��2�"+��7��+��34�%����( �+� 6� �"+��1�� �̂������"� ?���� 3'(���+��#��+� p���!���� !"#� )�m�n!���� �'(�?����( ?�� ��'(� ������ ����$%�� �������!���$1(��� ���� �� �1��34�%����( �+� 6� ?���0�!�� )�/"1!"#��0� ��'(� � �"+��1��+�������������34�%����( � )�( 2#?3��_�/���� ����������?����$%�� ��&� ��+����#��","�"� �1�
?������`��)�m�n!���� � o��#��+� ��( )�m�n!����#//�,.���̀ ��2� ����1�����.� �1(����/�����������34�%����( �+� 6� �1�� �'(�$1(2#��������`��)�m�n!���7��7�+2%�� �^���� ��a�������.�$� ���p���!���� $�( �1���+����#��","�"� $1(�+� ���� ��2�1�����������34�%����( $1( ��'�����7�� )�( ��(����������+�)�m�n!���$1($%�� ��/��#//������ ���� ��'(� ���( � 2#������$%�� ��7�/��#//������ ����$4��#//$1(�1�� ���� �����������34�%����( ��'�����
��51�����`��p���!�������� ,.���`��p���!���� �1� ���!//�����������34�%����( �!"#���� � 2���#��"�?��������$%�� ��7���������������������7�+��� �%���� �� �����̀ ��)�m�n!���?6
!���+������� �� �� ����������������� �����?3�� �����������34�%����( �̂��"��� 2# �^���#�3��?������̀ ��)�m�n!����!"#�p���!����k����!�+/� ��51������̀ ��)�m�n!���!"#p���!����������/�����������34�%����( ��� ���7�� $%��?��7�+�������������'���`������������������� ����!//?��+6�&�����7�
,.���`��)�m�n!���
�� ��� ������ ������ �� ���
,.���`��p���!���
��� ����
��������
������������������ ������������������� ��������������������� ����q���
���������������� ������������� �� ��������������
6�� ����� #7#�#��
��+����#��","�"� ��'��OKh������ �^�a.����"� ?����$%�� ��&� �#//������ ����$4���( $1(�"+���� ?������������34�%����( ����� ��+����#��","�"� 2#��� �1����������$%�� ��7����$1(�#/47��� ��� ��1�/ $1�/��/�+� ��� ����2�"+��7��+���+����#��","�"� �̂���� ��40�� ���$�� �1����?���+����#��","�"� 2#��#��/7�r��
• ��+����#��","$� �5��a�����!"#$� ����#�*JBh-
• ��+����/�4��*O>:<M>g�h:=<-
• ��+������2%��3�(������*eDZ=E<DM-
• �#//�����ll�5�%�����/��� 3'(���+��+� 6�*shd- ��4$1(��+����#��","�"� 2%�� �^�2#��� �1����������?����2%������� �'(�?3���#��/
������%����5�+� 6� *)�( �'(� ��1�/ $1�/��/������%����5�+� 6� &� ��40��� 2#�/�+�������%����5&� ��40����� ?3�����2%�� 3+����� 3+���51���/�� "&!// k�6���� ����� ����%���Ut�� �����2#���?�� k��%��� U� 7��?�?2� 3.&������ �� ����!"����/�+�2���/� )�( 2#�/�+��1���?3�����2%����/�.+��/����%����5��� ���-
"89�6�':���:
�I ����������������� �����'��#7�UI �+����#��/&� ������ ������1�#7�/��
�I ?������`����!��������0�3����. � ���1&������?������̀ ����!����+� 6� �"+�������+� 7�
qI �����������34�%����( �'��#7�� ����"+���� �����������34�%����( � �"+��� �̂���#�3��?������`��)�m�n!���!"#p���!�����'�7�+���+� 7�
uI 2 ���� � 2�/�� "&$1(2#/�� "&&���U�]=<�!"#����$�1����/���!"��?���%����/ �̂�,""��_����������$
vI 2 ���� � 2�/�� "&!//��4����*dDM=Lg�JWWDM-�!//�Y>>MD�!"#�YDLgF�YL;A=:D
������������������ ������������������� ��������������������� ����u���
���������������� ������������� �� ��������������
����������� !�"!#$%&'����(&)$!*+,&�-
��#��$_����� �'�� �����!"#��� ��1�/ $1�/���$%�� ��� $�� �1�?����a��0� �'(� ��#��$_����&� �#//������ ��������� ���4+ ����� ��22���+� 6� $1(�+ ,"��#$/�+����$%�� ��&� �#//������ ����� ��4+ ?�������� "'��?3�� ��'�� �.�2���������#��$_����&� �#//� �'(�?3��_�/��?���'����+����7��w�� �����̀ ����#��$_����&� �#//������ ���������_1����+� 6� ����� ?��,"$� �x�/���$1(1&�����+� 7�
��� �'�����:;�<��$��������� �����
�������#��$_����&� �#//������ ��������� ��?3� �"� �^��"��?������� ��#//������ ����$1(?3� �"�?����$%�� ����!������( 6� ������+�� 2#�1��#��$_���������+��#//������ ����$1($%�� ����!��� 1������ !�+?3� �"�?����$%�� �������+�� ��'� ����2�"+���1�������( 7��+����#��$_��������� �̂��+���"�/&� �"�
yKDM\>MPL:;Dz�{����yV|D;9<=>:�}=PDz
����"+���+��N ��'(� ������ �����~� �k���+� ��'(� ��� �̂��:� $+�X���'��N ��'(� ������ ����~��1��#��$_���� ��'����� ��'(� ��� �̂��:� $+�X�������������_�/�� �̂������7��+�
:�{�yKDM\>MPL:;D�;z���yKDM\>MPL:;D�\z
��'�
:�{�yV|D;9<=>:�}=PD�\z���yV|D;9<=>:�}=PD�[z
$�� �1� �'(� 2�� �"�?����$%�� ��&� �#//������ ����� �'(���#��","��!���?6��������2������ �"�?������/��� &� ��'(� ������ ��������6� *eDEQ>:ED� }=PD-� 3+�� �'(�,.�?3���( ?����!��������&���."� ��!���?3� �"���� $+�?� �"� 2�� ��(������� !"#� 7�,""��_�!� ������ ��'�� ��2������ � ����������?������#��"," ���+� 6� ?�3+� �"����( *}AM>9ZAQ9<-� 3+�� ��'(� ������ �������������#��","��!���7��U� ��!�������?� �"��������$1
������������������ ������������������� ��������������������� ����v���
���������������� ������������� �� ��������������
���2���1����� ���� ���#�����$%�� ��&� )�m�n!����+� 6����?� ��'(� ������ ����� ��2#�/�+�� ��'(� ������ ������22#7�+7�?3� �"�$�� ��7���/�����#��","� !�+ �"�/� �+����2�.l �1�7� �'(� 2�����$%�� ��&� p���!����+���'(�6� 3+�� ����+��&���."2����+������2%�����'��#//� c����'(�6� ?������ ���#��� eDEQ>:ED�}=PD���'��V|D;9<=>:�}=PD�2� ��2!/+ ���7� �̂�
• VgLQED� }=PD� �'� �"�?������#��","��!������( 6� &� �#//������ ����� )�( ����� �"�$1(?3�?�����+��&���."2���c���!"#���+������2%��
• OKh� }=PD� �'� �"�$1(� OKh� $%�� �� �'(���#��","��!������( 6� �7�+��/��� �"�2�������������$%�� ��2���4���5��+��+� $1(��.+��������+����#��","��"�
$�� �1�� ?��������#��$_����&� �#//������ ��������� ������������ OKh� }=PD� !$����������VgLQED�}=PD�$�� �1� �'(� 2����������#��$_�����?3��VgLQED�}=PD�?������� �� ��+�&� ��#��$_����$1(��7���2&�����.+��/���� �k�&� ��� &���� &���."?���+������2%��� ��'������ �k�?������/��� &� �4���5��+��+� �+� � $%��?���+�$1(��7�� �"+��� 7�+�������� ���#��," 3� ��1�/ $1�/����������&� ��+����#��","�"� 7��*2��&���."$� ������/�+�� �"�?������#��","&� ��!�������� �����+�� qu�� �^� �"�$1( �1���/���$%�� ��&� � c��� ��'�� �+���'(�6�)�( 7�+ �1(��&�� ��/���$%�� ��&� ��!���-
2��!��$� ?��������#��$_����&� �#//������ ����� �"+��� ��2#�/�+��������#��$_����&� �#//������ ��������2#��� ��a����!���$��/� *sD:;APLMj-�!"#�� �"�$1(?3�?����$%�� ���$�� �1���!���$1(2#?3�$��/���2 �̂���!���?6��k7��!�+���,.���̀ ��!�+"#���$%�����$��/��#��$_����&� �#//������ ����� �?3���!���$��/&� �� � � �"���'�,""��_�$1(7�2�����$��/� ��27�+������ ��1�/ $1�/���7�� � ����� 2� 7��1�������"4+�����#��+� ,.�,"����+����#��","�"� �+� 6� �'(��%������# �$&� )�m�n!���$1( ���#���%�����/�������#��$_����&� ��#//������ ����� *dKVO�sD:;APLMj�E9=<DE-�)�m�n!���?�34�dKVO������#��/���� )�m�n!���$1(?3�����������&� ��+����#��","�+��&�� �. � 3+�� ��!����� ���#��$� �5��a������ ��'�� ��$��a������ ���7� "���$1(�1�����������. � �̂����� � ����"# �1� ��(� ����������������7�2��� dKVO� sD:;APLMj� d9=<DE� )�( ,�!��+�� dFE<DP�KDM\>MPL:;D�VTLg9L<=>:�O>>QDML<=TD
������������������ ������������������� ��������������������� ��������
���������������� ������������� �� ��������������
,.*&/0'2�����$"� �� �"�?������#��","&� ��+����#��","�"� � ?����$%�� ��&� �sD:;APLMj���!������( �,"$1(7� �^�� �1�
��'(� �J�?3� �"�?����$%�� ���U������$1 ��'(� �s�?3� �"�?����$%�� ���Uu�����$1
��'(� ������ ���� ��'(� ?�1��#��$_���������+�����!"#������+� �̂��1( $+�
��'(� �J��1��#��$_���������+� ��'(� �s� �'(� 2����������#��","��!���$��/7� �k���+�2��
:�{�yV|D;9<=>:�}=PD�\z���yV|D;9<=>:�}=PD�[z���{�Uu�U��{��IUu
∴� ��'(� �J��1��#��$_���������+� ��'(� �s���.+��IUu� $+�
���6�� #��=>?�@)AB�$��!��"�������C
?�$� �x�/�������� ��7�+����������'�2�/ �"�� OKh� }cYV� &� �����#��"��!����+� 6� 7�� ���# ��7�+$��/�+� �"�$1(?3�� �"+��� �^�� OKh� }cYV� ��'�� �^� �"����$%�� ��$1(��2��� c���� �����������OKh�}cYV�2� ��2$%��7�������#��5��'������/2%������%����( $1(?3�?������#��","�!"#���,"���&� �"�$1(?3�?������#��","�%����( $�� ��
,.*&/0' ��'(� ������ ���� ��'(� ���( �1 �"�?������#��","�%����( !�+"#�%����( �^�� �I�� ����$1�����%����!���$1(�12%������%����( � ��� �%����( ��$%�������#��","/� ��'(� � �"+��� 2#?3� �"�?����$%�� �� �̂� $+�7�
∴� �"�?����$%�� ��$�� ���{�������I�
��+� 7��k���� ���/�� �"�?������#��","&� �%����( !�+"#�%����( ����� 7�+����/�� �̂���+������$1� $�� �1� �'(� 2�� �"�?������#��","&� ��+����#��","����� 2#&�����.+��/��ll�5
������������������ ������������������� ��������������������� ��������
���������������� ������������� �� ��������������
������$1(�r��?����/��+����#��","�����*Og>;j�eL<D-�)�( 3+� �"� �"+��1������ �1���+��<=;jE���'�;g>;j�;F;gDE��
yOg>;j�OF;gD�}=PDz�{�����yOg>;j�eL<Dz
3+����+����#��","$1(�1�Og>;j�eL<D� �^��Uu�YA��2#�1�Og>;j�OF;gD�}=PD� �̂��q�:E �̂����
���2���1������#��","�%����( !�+"#�%����( � ��2��7�?3� �"� �1� � �� Og>;j� OF;gD� }=PD� $+������2%������OF;gD�$1(?3�?������#��","!�+"#�%����( �*OF;gD�KDM�c:E<M9;<=>:���'��OKc-���2!���+� ���7�� 3+������#��","�%����( /����2?3� �"����OKc�!"#�����#��","�%����( �.5��2?3� �"�� �� OKc� � �������� ��+����#��","�"� � �"+��� �1�����1(��ll�5������ �^���u�YA�� �"�$1(?3�?����$%���%����( /���2# �̂��q�:E�*��q-�!"# �"�$1(?3�?����$%���%����( �.5 $+���/��U�:E�*��q-� �̂�
�'(��%��!��������$�� ������#��� &��������� ��������4� �^������!� ����������_��#��+� �"�$1(?3�?������#��","�!"#������1(��ll�5������7�� �1�
y �"�$1(?3�?������#��","!�+"#�%����( z�{�yOKc�&� �%����( ����z���yOg>;j�OF;gD�}=PDz
��'�
ydD;>:WE���KM>ZMLPz�{�yOg>;j�;F;gDE���c:E<M9;<=>:z���ydD;>:WE���OF;gDz
� ���� �"�?����$%�� ��&� �OKh�2# �̂�
yV|D;9<=>:�}=PDz�{�y2%������%����( z���y �"�$1(?3�?������#��","!�+"#�%����( z
2�������� �"+���/�+� �����������/��4 �"�?����$%�� ��!�+"#�%����( 7������"�+��OKc���'��"�+��Og>;j�OF;gD�}=PD���'��"2%������%����( " �� �1�
• Og>;j� OF;gD� }=PD� ��'�� Og>;j� eL<D� &�����.+��/�� ���� ���?�p���!���� !"#� $��"�1?����,"��
• OKc�&�����.+��/��� ���� ���?�p���!����!"#��� ���� �����������34�%����(
������������������ ������������������� ��������������������� ��������
���������������� ������������� �� ��������������
• 2%������%����( � &�����.+��/� �� ���� �����������34�%����( !"#����������?����!�"!"#��Q<=P=�D�&� ���!�"��0�
,.*&/0' ��'(� ������ ���� ��'(� ���( �1�����1(��ll�5������� ���YA�� ?3� �"�?������#��","��!���$��/)�( �12%������%����( $�� ����� U���� "����%����( � �̂� �"�$�� ����� U�� ����$1����,.����!//��������`��?����+����#��","�"� ?3������1(��ll�5������ �^��U��� YA�� !�+?3�2%������ OKc� ���&��� �^�� �IU� $+�� ����%����!�����/�1���$��/?���+����#��","$1($%�������̀ ��� 2#?3� �"�?������#��"," �̂� $+�7�� *�%����?��!�+"#�%����( ?3�� �"�?������#��"," $+����-
�����1(��ll�5�����������YA���� �̂��Og>;j�OF;gD�}=PD�{���*�������-�ED;2���yOKh�}cYVz�{�y2%������%����( z���yOKcz���yOg>;j�OF;gD�}=PDz
�yOKcz�{�U����������U�������
∴�yOKcz�{���OF;gD�����̀ ����+����#��","�$%��?��?3�2%������OKc�?��+���&�����IU� $+�
∴�yOKcÄ®¤nz�{��IU�����{��IU�OF;gD �"�$1(?3�?������#��","��!���$��/�"� 2����̀ ����+����#��","�"�
yOKh�}cYVÄ®¤nz�{�U�������������IU�������*U��������-
∴�yOKh�}cYVÄ®¤nz�{��U�����$1
?�/� ��51 ������$1(2#�"+���� ���� �k�?������#��","$�(�7���?3���+���YcKd*Y=gg=>:�>\�c:E<M9;<=>:E�QDM�dD;>:WE-� 3+����!����1���$%�� ��$�� �����U���"����%����( ���?� �"��U������$1���2�"+��7��+������ �k�?������#��","&� ��+����#��","� �"+�� �^�U����U��{�����YcKd� �^�����)�( �1���������+����+����#��","� �"+����������#��","7������"����%����( ����?� �"��������$1
�D$���4EFG5H
?�������/��4 ��#��$_�����+�����( �+��?&� ������ ���������,"$1(7�2��������/��4 ���2��7��+ ?����#��$_����$1(7� ��(�&���!// 3� ���� 3+�� ��� ��(���#��$_����?����/�� "&&� ��+����#��","�"� ?�� �k�&���� U� $+�� ��7����������+� �'(��%����!���$��/ &��7�$"�
������������������ ������������������� ��������������������� ���������
���������������� ������������� �� ��������������
��#��"�2#7���#��$_���� ��(�&��� �^��U� $+��$�� �1� �'(� 2�� �"�?������#��","$�� �������7�+?3+ �"�$1( ��&���2�����/�� "&����!�+��2 �̂�����.5 "&��������&���."���'����� ��1�/ $1�/$� ����#�k7�
��&� � JPWLAg� 7��%���������� dQDDW9Q� ��'���#��$_����$1( ��(�&���7���+�� ��� ����`��?���+�����( �+��?&� �#//�1�������������&���,"&� ��#��$_����$1( ��(�&���2��������/��4 �+�����( �+��?� �"+������� 2# �^�������+���#��+� ��#��$_�����"� ������/�+���#��$_�����+��������/��4
dQDDW9Q�{�y��#��$_�&� ��$�� ��� �'(��1�����̀ ��z���y��#��$_����&� ��$�� ��� �'(�7�+�1�����`��z
$�� �1� �"�$1(?3�?������#��","��!���$��/��"� 2��$1(7�$%�������̀ ������� ��������7�2������m� ��3��� �+�7��1�
yV|D;9<=>:�}=PD®¨´��µ¦�¦´��¦»�z�{yV|D;9<=>:�}=PD�n°��¦´��¦»��Ťn¤¸�¨�¦³���z�t�*yV|D;9<=>:�}=PD�n°��¦´��¦»��¤¸�¨�¦³���z���y����������̀ ��z-
3+�� ?����)'��&� ����� 2#��� �1� �"�7���/��� ��$� 7�!"#�"�/� ��� ��$1� !"#� �1� �"�7���/���)'��&� �!"#�3%���# ��?���������1������$1�� ��������,.�)'�������� ��$� 7� �k�&����U� $+���+��dQDDW9Q���'����#��$_����$1( ��(�&���2#������+��U� $+��)�( ���������%����57�� �1�
�"�$1(?3�?����)'��&� !�+ ���{������$1 �"�$1(?3�?����)'��&� �'(� �� �k�&����U� $+��{���t�*���U-�{�����$1� �����dQDDW9Q���'����#��$_����$1( ��(�&����{������{��IvUu� $+�
��&�
�'��b��?������ ���#��!"#����#��$_����&� ��'(� ������ ��������� �̂���( �%����l?����a��0��#//����������������� ����� $�� �1� �'(� 2��� �'(��1������!//��'����/��4 �#//������ ����!"���2#��� ���������.2�����'���� ���#��7��+��������/��4 � �"+��������+ ,"�+������`���#//������ ����?��1&���7���+� 7�� $�� �1�?���51 �̂�,.�?3���'� "'��)'��,"����5���+� 6� $� ������ ����� ,.�)'������1�����.����� &��?2 �'(��+���%��!�#�%������������6� $��/�� &��1&�� �1�� ��_1
������������������ ������������������� ��������������������� ���������
���������������� ������������� �� ��������������
���$��/� �7�+�" �"��������/�%���05�3�� 3'(�� �'(�?�������� "'��?3� ���#//������ ����$1( ���#����/ ��&� ��� ��+����#��","�"� /� �������� ��2�1��#��$_����1 �'(���#��","$� �5��a�����!//2%����� �k�� !�+��2�1��#��$_����!�+ �'(���#��"," "&$a�������'���MLQA=;E
����� ���#����#��$_����?� 3� �x�/�������� ���2��2#��a�������.��'��b��� �"+��� �� ��� ��a�������.�$� ����� �'(� �'(���#��/����� ���#������ 3+�� ������+� o"1(�$� �5��a������������+� o"1(�p��������'�������>MPLg=�DW�,"���$��/� �'(�$%����� ��1�/ $1�/
"89�6�':���:
�I ��2#����#��$_����&� ��'(� ������ ����7���+� 7�UI $+�����+�� ��4? ��2� "'��?3��OKh�}cYV�?��������#��$_����&� �#//������ �����I ��22��?/�� �+ ,"��#$/�+���#��$_����&� ��'(� ������ ����qI �������� ��(���#��$_����&� ��'(� ������ ����7���+� 7�uI ��� �"1(��� OKh� ?��+$1(���� �k��. &���?�� 2� �̂����� ���/��4 � eDEQ>:ED� }=PD� ��'��
}AM>9ZA�K9<vI ���7� "����U�����$%�����!�"��!��� �̂���0� ��'(� �7�," �̂�34�%����( ?��"4+��J�s�!"#�
O�)�( �%����( ?�!�+"#�"4+��1�+��OKc� �̂���GUG�����"%���/���!���$1(7��1"��05#
� ��!���$1(7�2�����7� "���34$1(����1��%����( ��.+?��"4+��J�u"����%����( ��"4+��s���"����%����( �!"#��"4+��O���"����%����(
� ��!���$1(7�2�����7� "���34$1(�U��1��%����( ��.+?��"4+��J�v"����%����( ��"4+��s�U�"����%����( �!"#��"4+��O���"����%����(
��!���!�+"#34?3� �"� $+�?� ��!���34?�1��#��$_���������+����� ��� ��1�/ $1�/?���+���YcKd���!���34? �k���+����
������������������ ������������������� ��������������������� �����U���
���������������� ������������� �� ��������������
������1� 2�3,/4��)567(�� .�'
�����������34�%����( � �'��������������0�$1(?3��%�����/�#//������ ����� ��'���0� ��'(� � $�� �1���0� ��'(� ���� �^���0������� ����$1(�1"��05#!���+� 2����0������� ����3����. �$�(�7������7�+�1�%����( �����/�4�� * 3+���A=gDG� \>MG� g>>Q� -� ?� �����34�1��4+ ��# k���?2$1(�����������34�%����( &� � YcKd� KM>;DEE>M� )�( �1���?3� ��/��#//� �=:<D:W>G� d=g=;>:��MLQA=;E�!"#�d>:F�KgLF�d<L<=>:�$�� �1� �'(� 2�� �̂������������$1(�134�4��( ���� &��?2 +�����( $1(��� �"+���� !"#�_�/��?���������������&� �#//������ ����$�(�7��������#��/���
• �%����( �+� 6�*)�( �����_�/�������0�!�� )�/"1-
• eDZ=E<DM���'�$1(���&���."�!"#�8gLZ�!� ����#
• �#//���2������+������2%��
• �.�!//�%����( ��0� ��'(� $�� �1��#//�����������34�%����( ����� �1����2%�� �^���+� ��( ?������`��p���!���&�
�#//������ �����!"#�)�m�n!����#//� �'(� 2�� �^�&����" $1(?3��#��+� ,.���`��p���!���!"#)�m�n!���� *� �"+��!"��?�/$$1(� �-� ��+� 7��k��������������34�%����( ��7����/�"4��� ��� &1����0�!�� )�/"1$�� ��� ���#?���0�!�� )�/"12#�1����%����� YL;M>� ��'���� �� �%��!��+ ?���+������2%������BL]Dg�!$�$1(������ �� ����JWWMDEE�&� ��+������2%��
6� '�(����%�"#��&'�(����%�
34�%����( �?���+����#��","�+� 6������$�(�7�������2%��!�����"��05#���$%�� �����'���� �1��?3� ���7� �̂������.+� �1�
• ����%����( $1( �1(����/��� �"'(������&���."� *HL<L� Y>TDPD:<-� ?3��%�����/����+��!"# &1��&���."2����+������2%��
• ����%����( �����#��","$� �5��a������*/���"/��.5����-
• ����%����( ���$%�� ��$� ����#
• ����%����( ��/�4�� �'(��%���� '(��7&&� ���$%�� ���%����( ��7�� 3+��c8II}CV����2���1�?��� )� )���/� ���� ��2�1����%����( �'(�6� ��'�34�%����( $1($%������$1(�� a0
�'(�6�$�� �1�2#!���+� ���7������ ���� !"#������!//&� ,.���̀ ��?������#��","!�+"#�%����( ����� ��+����#��","�"� 2#�1&������?����� �%����( 2��
��+������2%�� &���.+��+����#��","�"� � 2������2� $%�������#��","�+�7�*���"# �1� ��(� ���.?�/$$1(�u�!"#�v-�$�� �1��%����( $1(2#�.�� &��������2#�.��%������eDZ=E<DM��� a0)�( �1���+�
������������������ ������������������� ��������������������� ���������
���������������� ������������� �� ��������������
KM>ZMLP� O>9:<DM� *KO-� ��'�� �� )� )���/� �����22# �1��� eDZ=E<DM� �� a0�1��+�� c:E<M9;<=>:�K>=:<DM�*cK-�� ����"��05#�� a0&� �%����( ��/�4��'�����������/ �"1(���KO�?��31�7��� �%����( �'(��)�( ��7� �̂��%����( $1(�����7� 3+�
]Df �E�G�E�G<DE<LWW �<�G�E�G�EU
<DE<R E9] �<�G�E�G�EU
�%����( �]Df� �^��%����( ��/�4�)�( 2#$%����� ��1�/ $1�/�+����?��eDZ=E<DM��E��!"#��E���� $+����2#7�$%�� ��$1(�%����( � E9]�!"#����7�+ $+����2#$%�� ��$1(�%����( � LWW�)�( �̂��%����( ��7�$1(�����
��� &1����!�������%����( �+� 6� ?���0�!�� )�/"1 �'(���( ?�� ��'(� ������ ����$%�� ������!�+"#�%����( 2#��#��/����#����%����( �*�Q;>WD-�!"#�����x�/�������*�QDML:WE-����Q;>WD� 2#/���� �%����( $1(��� ���$%��� !"#� ����x�/������/���� ��+������2%����'�� eDZ=E<DM� $1(?3�?����$%�� ���%����( ����6� 3+�
LWW �E�G�E�G�EUL:W �<�G�E�G�E�
LWW� !"#� L:W� ���� �̂�� �Q;>WD� $1(/��?��$��/�+��%����( $1(��� ���$%�� ���'�� LWW� !"#�����L:W����E�G�E�G�EUG�<�� �̂���QDML:W�$1(/��?��$��/�+��?���%���+�?��eDZ=E<DM��E��!"#�EU����/�����!"�� �k/7��$1(��E�� �̂����
34�%����( /�� YcKd� ����� �����#��","$� �5��a������+� 6� 2#�1� �QDML:W� �̂��eDZ=E<DM� $+������ ���QDML:W����!��2#?3�/���eDZ=E<DM�$1(?3� �k/,""��_��!"#��QDML:W������1��U����2#?3�/����QDML:W�$1( ��̂������ � 3+�
LWW �E�G�E�G�EU�1���������'��E��{��E�t�EU
� ������51$1(��`��)�m�n!��������0�3����. !"���1�����#��a��'�?3����!���+� 6�O>PQ=gDM���'����!�"��0�2#$%������JEE>;=L<D����!�"�+� 6���/�eDZ=E<DM
������������������ ������������������� ��������������������� �����q���
���������������� ������������� �� ��������������
3+���0��O J�{�s�t�O�t�H�
V�{�8���J�
YcKd�O�HV LWW� �<�G��E�G��EULWW� �E�G��<�G��E�E9] �EuG��EuG��E�
�̂���� �'(� 2��� YcKd� �1�� )� )���?�� ��?3� �1� � �U� ��� $+������ �������?�)�m�n!���$1( ��
��`��2%�� �̂���� �1������ �� ���!�"�����+�� �U� ���� &���." �"+�����2#��� �.�2� �k/7��?���+������2%���!"#�1����+���+�&����� �'(���#��","� �'(� ��k2����!"���k/��$���"�/7��� ��+������2%�� 3+� ��� !"#�����+������2%���� 7�+�� �1� $1(2# �k/&���."� �"+��� ��22#��� /��$��&���." �"+�����" ?��c����+� 6� 3+��CLMW�H=Ej� �̂����
���I�'���6�� �� ��I(����A3E1-J�K-LG*0MG,01*
��+������2%������ �̂� ��'����/� JMMLF� �� ����&��?�l+� )�( 2#��� �� ���� JWWMDEE�%�����/�YcKd�2#?3�� JWWMDEE� ?������� �� ��+������2%��� �U�]=<� )�( ���������+��YcKd� 2#�1��+������2%��7�$�� ����� U���sF<D���'��q��=ZL]F<D� ?������� �� �� ��+������2%��������22# �̂������� �� ���� "#� �� sF<D� *sF<D� JWWMDEE=:Z-� ��'���� �� ���� "#� U� sF<D� *CLg\� �>MW�JWWMDEE=:Z-� ��'���22#��� �� ���� "#� q� sF<D� ��̂� �>MW� JWWMDEE=:Z� �k7�� $�� �1�&�����.+��/�.�!//�%����( !�+"#�%����( �$�� �1�&������#�� ?������� �� !//��>MW�!"#�CLg\��>MW�JWWMDEE=:Z��'���#//�s=Z�c:W=L:�!"#�B=<<gD�c:W=L:�)�( 2#!���+� ���7������ ���� &� �OKh�!�+"#����� �����+� !� ���2� �k/&���."��J�s�O�HA���'����v�q�v�q��" ?���+������2%��
�JA �sA �OA �HAJWWMDEE �� �� �U ��
�#//�s=Z�c:W=L:
������������������ ������������������� ��������������������� �����u���
���������������� ������������� �� ��������������
�HA �OA �sA �JAJWWMDEE �� �� �U ��
�#//�B=<<gD�c:W=L:
$�� �1��OKh�YcKd�)�( �"+���� ?�/$ �1��2#�1�� ���� !//�s=Z�c:W=L:�?�&5#$1(�OKhc:<Dg���#�."�|�v�$1(�/$�(�7������2#?3��#//�B=<<gD�c:W=L:�� ����?������̀ ��)�m�n!���2� ���?3������#���#��
������������6�� �� ��I(����4FF-3++0*L�A1F3
������ �� ��+������2%��/�� YcKd� ����2#?3��#//� sLED� JWWMDEE=:Z� ������� �� �%��!��+ �.+��/�eDZ=E<DM� 3+��U�*�E�-�2#�%���+�?��eDZ=E<DM��E����/����/�U���+��2� 2#?3���� �� �%��!��+ �JWWMDEE� 3+�
g� �<�G��U*�EU-���&���."?��eDZ=E<DM�$1(��EU� �̂�������%����( � �"+��2#�%��&���."?��%��!��+ $1(���U���
�k/7��?��eDZ=E<DM��<����2���1��� �1������ �� !//� cPPDW=L<D� �'(��%��&���." �"+�����7�?3�$��$1(7�+2%�� �̂����
��� �� &���."2����+������2%��� 3+�LWW �<UG�E�Gq�1���������+��<U�{��E��t�q/��#//�� )� )����'(�6� ��2�1������ �� �%��!��+ ��+������2%��$1()�/)��������+��1��
3+���#//�sLED� c:WD|�JWWMDEE=:Z���'��#//�sLED� c:WD|�H=EQgL;DPD:<�)�( ��������� �� &���."?���+������2%��7��"���"���.�!//
�N�"�(����%��)*+,-./,01*�O1-EG,
�%����( ��0�!�� )�/"1$4��%����( 2#�.�!�" �^���0� ��'(� ����!�" �^���0� ��'(� �1�� ����1�.�!//���!�" $1( �^�!//!,�� )�( ��2# �1���.�!//$1(!�" 7��+� 6� �"+��1��+��c:E<M9;<=>:�8>MPL<� �'(� 2����0� ��'(� ����2#��/����s=<�KL<<DM:� �1� ���!"#��� $+�������.�!//�%����( $1(!�"2����0�!�� )�/"1 �^���0� ��'(� 2� ?3����!/+ � ]=<� ��� �^�3+� 6� !"���%������������?���]=<��+� 6���51&� �YcKd�������%����( $4��%����( 2#�1���������U�]=<E� $+������� *�� )� )���/� ���2#�1�%����( $1(�1���������� !�+� ����� ]F<D-� �1�.�!//�%����( $�� ����� �� �.�!// $+�������'��!//�eGc�!"#�@��!�+"#�.�!//2#�1����1�����+� ���7�����.�!//�%����(
������������������ ������������������� ��������������������� �����v���
���������������� ������������� �� ��������������
Byte Halfword Word
Registers
Memory
Memory
Word
Memory
Word
Register
Register
1. Immediate addressing
2. Register addressing
3. Base addressing
4. PC-relative addressing
5. Pseudodirect addressing
op rs rt
op rs rt
op rs rt
op
op
rs rt
Address
Address
Address
rd . . . funct
Immediate
PC
PC
+
+
�����+� 3+����!�"�%����( �LWW��<�G�E�Gq
������ ����� ����� ����������������v�]=< u�]=< u�]=< �v�]=<
�Q;>WD eE e< �9P]DM
$�� �1�!�+"#�%����( !�+"#�eDZ=E<DM� 2#�.���� �� �������?&�����.+��/,.����!//!�+"#���2#�%����� *.���"# �1� ��(� ���7�2���.+�'��� ���� 34�%����( &� !�+"# ��'(� -� 3+��%����( � JWW���2!$����� ������� �%����( � E9]� ��2!$����� ������� �^����� ��"�� �5��?�����%���������+� 6������&�����.+��/!��$� ?�������!//� 2� �'(��1�����%����(
��&�
�����������34�%����( ����� �^�����b��$1(?3��'(��#��+� �����`��p���!���!"#)�m�n!��������)�/)���&� �%����( ����� �̂� �1� ��22�����( ?�������!// $+������$�� �1������%����( �1����)�/)������&������22#�+ ,"?���%����( ?��������6�?3��OKc����&����!"#�� 2�$1(�1&��?�l+$%��?��� 2�� �"+��7�+������?3�� Og>;j� eL<D� $1(�1�����1(�. � $�� �1���224/���� 7�+�1����b��??�����%�����+������������34�%����( ����1��+������������34�%����( �'(�6���'�7�+
������������������ ������������������� ��������������������� ���������
���������������� ������������� �� ��������������
"89�6�':���:
�I �����������34�%����( �'��#7�� �1��( ?$1(��� �"+���� /�� � !"# �^���#�3��?������`��)�m�n!����!"#�p���!�����'�7�+���+� 7�
UI �Q;>WD�!"#��QDML:W��'��#7�
�I ����#//������ �����1������ �� ��+������2%���?3�� JWWMDEE�$�� ����� �U� ]=<� 2#��������� �� &���."!//��>MW�JWWMDEE�7�$�� �����1(��>MWI
qI �#//�s=Z�c:W=L:�!"#�B=<<gD�c:W=L:��1&��!���+� �����+� 7�
uI ���$1(��+����#��","�1�#//������ �� ��+������2%���"���"���.�!//� �^���#�3����'�7�+���+� 7�
vI ���$1(�c:E<M9;<=>:�8>MPL<�$4��.�!//�1��������%����( $+��������1&��1&�� �1���+� 7��I ��0�!�� )�/"1!"#�����������34�%����( �1&�� ��'����'�&��!���+� �����'�7�+���+� 7�
������������������ ������������������� ��������������������� ���������
���������������� ������������� �� ��������������
������8�9�0*/���)*:;:�',��4�<:�(=!,> ,�-
������� ��+����#��","$� ����#!"#�5��a����� �'(�?3�?���+����#��","&�����/��G��v�/�����'���U�/���!//�'��b���������a���"��������� �JBh�&�����/���!"���%�����+��+� ���2�7�&��$1(��� ���� $�� �1�����������&� � JBh� 2#��� �1� ��$1(2#�� ��/���$%�� ��&� �����������34�%����( $1(2#�%��� JBh� � �"+��7�?3�?��#//��#��","� ��( $1(��� �%���� �� ?�������� � 2�$� �5��a������'�� �#//2%�����$1(2#?3�?������#��","� !"# '(��7&����%����5�+� 6� ����� ������� � 2�����#!// 3� ,��� *O>P]=:L<=>:Lg� B>Z=;-� ���?�/$�1�2#�"+���� �#//2%������ ���!$��+� "&�+� 6� ���?�� OKh� ���!$�2%����� �k�� ���!$� "&$a����� ���/���"/�!"#�����.5 "& /'�� ���
��I(��� ��"#����� �#
���!$��+��+� 6����?���+����#��","�����2#��#��/&���2��/�����'�� "&� ��!"#��� $+������ )�( �$�� 7� ������4�� ����/�#// "&b��� U� 3+�� ������ �1�+� �^�� UU��� ��'�� �u��� �1�+� $+���/��������+� 7��k��������� ���#��. ��2#�/�+����!$��+�� �"+���7�+������?3�/�� "&2%����� �k�"/���?���+����#��","7�� ���#?���+����#��","2#��#��/���� �� !"#� �� $+������ 7�+�1 ��'(� ����� N�N� �#//2%�����?�$1(�1�2� �4+ ���$1(���!$�&���."2%����� �k�/��!"#"/����?���+����#��","�"�
��_1���$1( +��$1(�4?����!$�2%����� �k�/��!"#"/���?���+����#��","�"� �'������%����/�� ��'(� �������'��#//�d=Z:�YLZ:=<9WD� 3+�������!$� "&�q�!"#������!$���q*?3�/��)����'��4!$� ��'(� ����� �� !$� ��'(� ����/��� !"#� �� !$� ��'(� ����"/-� !���+��#//� d=Z:� YLZ:=<9WD� 2#������?3�!$�2%�����/��!"#"/7��k���� !�+�k�1&�� �1�?�l+$1(7�+�������%���+�$1(�� ��'(� �����+� �����/��"/���7�� 3+�
d=Z:�YLZ:=<9WD "&b����������t������{����� *��-�t�*�-�{��U
2����l��� �"+��2� �1,.�������#//��:D�O>PQg=PD:<�&���� �'(�!����l�����/�� "&$1(�1 ��'(� �����+� ��������!$�2%�����"/�������c:TDM<�]=<�$4�/��� 3+��������1�+� �̂����2#?3�������!$��+��������$"� �%�� "&$1(�1 ��'(� �����+� �����/������2#7�,""��_�� �1�
������������������ ������������������� ��������������������� ���������
���������������� ������������� �� ��������������
�:D�O>PQg=PD:< "&b����������t������{����� *��-�t�*�-�{��q
���2���1����/�� "&?��#//� �:D� O>PQg=PD:<� �� �1 '(��7& ��(� ����'�� ��51$1(���/���1���$ ��&���� ?���%�����$$1(7���/���"�/?��"����+��� )�( �� �1�����/��/��#//� �:D�O>PQg=PD:<�?�"��05#�1��+���:D�O>PQg=PD:<�OLMMF�JWW�JM>9:W� 3+�
�:D�O>PQg=PD:< "&b����������t������{������
/�����$����t�����{�����
*�q-�t�*��-�{��u
����� ���#�����/�� "&?��#//��:D�O>PQg=PD:<������2#�/�+��1�����#���#/��!"# ���#��?�������� �̂�� 2������+��#//�d=Z:�YLZ:=<9WD�!�+���/��)�( 2#��� ���� � 2�/��$1( �̂��OLMMF�JWW�JM>9:W������k�� � )�/)���!"#$%��?��� 2�$%�� ��7�3���!"# ���� �/�1��+�������!"#������2#!$��+�����!"#�t��)�( �1�+� $+�������� �̂��������� �"'� !"#)%���)���&� �#//2%�����
��� '(��7&����4+ ���&� �#//� �:D� O>PQg=PD:<� � �"+��$%��?���1,.����!�" �#//2%�����?��������$%�����/��7� +����( &���� !"#� 7�+�1���!$��+�)%���)���� �����%��2%�����"/?��#//��:D�O>PQg=PD:<�$4�2%�������/��������)�( "��_�$1(7��'��#//�}�>�O>PQg=PD:<� 3+���U�?��#//��:D�O>PQg=PD:<�2#!$���������� �'(�?3� �̂��#//�}�>�O>PQg=PD:<�2#!$���������� �^����� ���2���1����/��2%�����?��#//� }�>� O>PQg=PD:<� ����� �� $%��7��#�� ��'�����/���������� 3+�
}�>�O>PQg=PD:< "&b����������t�����{������
"#���$����
*�v-�t�*��-{���
?���224/����+����#��","�"� $1(�/2� ���?3����!$�2%����� �k����� �#//� }�>O>PQg=PD:<� ���#�����#��?�������� � 2���#��","
������������������ ������������������� ��������������������� ����U����
���������������� ������������� �� ��������������
?����@ ��A��B�A�� ��� C���D�EFG�E�� H���D�EFG�E��
����*�-����*�-����*U-����*�-����*q-����*u-����*v-����*�-
����*�-����*U-����*�-����*�-����*��-����*��-����*�U-����*��-
����*�-����*U-����*�-����*�-����*��-����*��-����*�U-����*��-
����*�-����*U-����*�-����*�-����*��-����*�U-����*��-����*�q-
���� ��1�/!$/�#//2%������+� 6�&�����]=<��&���� ����#//$1(�1���!� ��'(� ����$4��#//2#?3��]=<�)����'��4?����!�
��'(� ���� �����/��#//�}�>�O>PQg=PD:<��������51��� ��(�/��&� ���!� ,"&���."��'������"��
��'(� ����7��� /����7�� 3+������ �̂� "&���/���$1(!� �+��t��!"��������2# �̂� "&�q�/���$1(!� �+��t�� 3+�������'������ �̂� "&���/���$1(!� �+�����!"#������ �̂� "&�q�/���$1(!� �+����� 3+������ ���� ��������$%���E=Z:�D|<D:W�7��&���."�� � �+� ��
KP3-QH1R������ I��"#�7#���:
����� ���#//2%������+� 6�$1(?3�?��#//������ ����2#�/�+��$4��#//2%�����2#!$�&���."7��������&�����.+��/��22�����( �'��2%�����/��$1(?3� �k/� 3+���#//�}�>�O>PQg=PD:<�&����� ]=<� 2#!$�2%�����7���� !�+� �q� �� � t�� )�( ��7�+������!$�&���."� tu� " ?��#//� }�>�O>PQg=PD:<� &��� �� ]=<� 7�� �� �1�����!$�&���."$1( �������������&� �#//2%�����$1(?3��+���TDM\g>�
��� ��� �TDM\g>�� ���� �^�7�7�$4��#//2%����� �'(�2%������"��$1(?3�7�+ �1� ��?����!$��+�$1(7�����2���1���TDM\g>����2 ��&���7�2�����/��"/2%������ 3+�
}�>�O>PQg=PD:< "&b����������t�����{����� ��t�U�{�*��-
������������������ ������������������� ��������������������� ����U����
���������������� ������������� �� ��������������
2�������+� � �"+��2#�/�+�� ����� *�-� /����/� ����*�-� ���2#7��%����/ �̂�� �� !�+����������/��#//�}�>�O>PQg=PD:<��1�+� �^�� ���)�( �%����/$1(7�,��"�7��"��05# 3+��1�� �k �1���+���TDM\g>�� 3+����
,"��#$/2����� ����TDM\g>�� ?����/����'�"/2%������+� 6� ����� $%��?�������#��","$1(7�,��"�� � ����?�������!//��+����#��","�"� 2� ��� �1������2��/� �TDM\g>�2�������#��","�%����( �+� 6� !"#� �'��?����!���$��/� �'(��r� �������,��"�2�������#��","� $�� �1���� ��� �TDM\g>�� ��2�+ ,"��#$/�+��%����( ��# �$� @9PQ� ��'�� sML:;A� 7� ���#����@9PQ���'��sML:;A�!//�1 '(��7&���������a����� ��1�/ $1�/2%������ 3+��sML:;A�c\�J�BDEE�}AL:�s�2#�%���J���"/��/�s�!"�����2��/ ��'(� �����)�( ���7�+�� ���#���+����"/��������1��TDM\g>�� ��&�����'�7�+���2$%��?����!���$%�� ��,��"�7�
������2��/��TDM\g>�� �%�����/���/�� "&b���� ������������ ������$%��7������.���$�!"#��%�����/���/���#//2%������}�>�O>PQg=PD:<�$%��7��������2��/ ��'(� �����)�( '(��7&��� ����TDM\g>������� �̂�7�� �1�
• �TDM\g>�� 2�����/��� 2%����� �k�/��� ���� 2%����� �k�/��� !"��7�,""��_� �̂�2%����� �k�"/
• �TDM\g>��2�����/���2%����� �k�"/�����2%����� �k�"/�!"��7�,""��_� �^�2%����� �k�/��
• �TDM\g>�� 2�����"/� 2%����� �k�/��� ���� 2%����� �k�"/� !"��7�,""��_� �^��2%����� �k�"/
• �TDM\g>�� 2�����"/� 2%����� �k�"/� ���� 2%����� �k�/��� !"��7�,""��_� �^��2%����� �k�/��
� ����?�������!//� JBh� $1(�"��$1(�1����#�%����l���$1(�4� *)����'��4-� 2� ��� �1������2��/��TDM\g>��*$�� �1� �'(� 2�� ��'(� ����!� $1(/��)����'��4-
4S?��4-0,5E3,0/�S1L0/�?*0,
������� � JBh� &��� �� /������� ��2$%��7����a���'��b��2��������� � 2�����# 3� ,��$�(�7�� *O>P]=:L<=>:Lg� B>Z=;-� ���� &1������ !� �+����� �̂�2�� � *}M9<A� }L]gD-!"#�?3��[�YJK�?������,"���&� ����.5�*d9P�>\�KM>W9;<-�� �����+� �+�7��1�
������������� �������������������������������
������������������ ������������������� ��������������������� ����UU���
���������������� ������������� �� ��������������
ALU
Op1
Op0
A
BS
�Q>���@ R d�� R J�J:W�s�� R J��M�s�� R �J�J:W���s�� R J�~>M�s
<�*�'������IJ��E�G�K���A�L������!//
�Q���Q�J�s d��������������������������������������������������������
��������������
��������
��
������������������ ������������������� ��������������������� ����U����
���������������� ������������� �� ��������������
$%������ �[�YJK�!"#��,""��_�
�Q�G�Q����J�s �� �� �� ���� � � � �
�� � � � ��� � � � ��� � � � �
2�������+� � �"+��2#�/�+�� 2�$1(7�2#�1�����$1(�+��&�� )�/)���
<�*�'������IB�G �FG�M��LA B Op1 Op0
S
2�����2#�/�+�� 2�� �"+��� ������$%�� ��7� ��'����/� 2�$1(7�2��m� ��3��?�!��$� ������!//$1(� �� !�+���������!//7� +����+�� �������!//� 2�$1(������$%�� ��7����m� ��3��$1(�#//��������+��� 3+��J�J:W�sG�J��M�sG��J�J:W��s�!"#�J�~>M�s�2�������2� ?3�� �Qy�I�z� ��$%����� "'��,""��_�$1(��� ���� �'(�� �Qy�I�z� �̂�� ��� ,""��_�$1(� d� 2# �̂�� ,""��_�2��� J� J:W� s� )�( ��2# �1��� 2�$1($%����� "'�������ll�5,+���1��+�� B=:D� dDgD;<>M� ��'�Y9g<=QgD|>M����� � �����"������1�� ������������ �JBh� 7��#�����&���� *�"������1���������#�4���7���/������� � 2�����#$�(�7�-
��+� 7��k����JBh�$1(?3� ��������� �̂�2�� ��������2#�1� 2�/�� "&���'��89gg�JWWDM)�( �1����+ ,+�����$�� ����*OLMMF�c:�!"#�OLMMF��9<-�$%��?��������� �JBh�$1(������/�� "&7������1�����ll�5���&����� ���!� �JBh���s=<�$1(�/?��OKh�YcKd
������������������ ������������������� ��������������������� ����Uq���
���������������� ������������� �� ��������������
0
2
Result
Operation
a
1
CarryIn
CarryOut
0
1
Binvert
b
��51���"/����� ��������?3����/��!$����"/7�� !�+���� � 2��%�����/���$%��O>PQg=PD:<�&�����!$�� 3+�����U��1�������� $+���/���t*�U-� �^�����$�� �1�?�/� ��51���2�1������� � 2�$1($%������$1("/��� �'(�?3� �����?�� OKh� �k7�� �7�+2%�� �̂���� $%����� �"1(�� ��'(� �����+���!�+2#7�+&��"+���� ?�$1(�1�
?�������� �JBh�$1(�1&��?�l+���&����������2$%��7������%���JBh�&�����s=<����+��+� ����� !� ?������2#��� $%�����"�������ll�5�%����( �� ����!"#�� �OLMMF��9<� &����/�OLMMF� c:� &� ��"����7�� ?���51$1( �̂��"���4$�������� 2#��� �1��� ��(� ���� 2��%�����/������2��/��TDM\g>�� &��7�r��
������������������ ������������������� ��������������������� ����Uu���
���������������� ������������� �� ��������������
Seta31
0
ALU0 Result0
CarryIn
a0
Result1a1
0
Result2a2
0
Operation
b31
b0
b1
b2
Result31
Overflow
Binvert
CarryIn
Less
CarryIn
CarryOut
ALU1Less
CarryIn
CarryOut
ALU2Less
CarryIn
CarryOut
ALU31Less
CarryIn
2���'��b�������.�?� �'(� ������� 2�!//����#� $%��?�� ��$��/�+�� ��#�.����#*B>Z=;� �L<D-� �+� �k�1 �"���+� ?������#��","� *�L<D� HDgLF-� $�� �1� �"���+� ����&�����.+��/�2%���������4$�����%����?����L<D�$4�����1�HDgLF� �̂����:EG�Y9g<=QgD|>M��1��L<D�HDgLF� �̂�U�:E�!"#�89gg�JWWDM��1��L<D�HDgLF� �̂��q�:E� �'(��� ���#�� $1�/��/� 2��+�7��1�� ��2#�/�+��JBh� &��� �� /���1�2#��� ?3� �"�?������#��"," �^�� q�:E� ��51�����#��","�%����( � J:WG�M�!"#�2#?3� �"�����:E�?������#��","���/��)�( �1�:><�����!�+?���� ��1�/ $1�/ �"������ ��2#��� "'�� �"�$1(���$1(�4�*OM=<=;Lg�KL<A-���'�� "'��$� $1(?3� �"����$1(�4����� �̂� �"�?����$%�� ��&� � 2�� $�� �1� �'(�?��� 2���#��","$4�m� ��3��7��.���� � � ����?�$1(�1� ��2� �"+���+�JBh���/�������+� ?3� �"�?����$%�� �����:E
������������������ ������������������� ��������������������� ����Uv���
���������������� ������������� �� ��������������
0
2
Result
Operation
a
1
CarryIn
CarryOut
0
1
Binvert
b
�'(��1����%��� JBh� �� /��� ���+��+� ��� �'(�?�� ��� JBh� &��?�l+� �k2#$%��?�� �"����$%�� ��&� � JBh� ���� ��(����&���7�r��� � ����2��#��57��+�����%��� JBh� � �"+�����+��+� ���� �U� /��� 2#?3� �"�?����$%�� ����#��5� ����U� ��'�� Uuv�:E� )�( 2#�+ ,"�+���ll�5������$1(?3���/��+����#��","$1(�1� JBh� ����1� �^��+����#��/���� 3+�� ���� JBh� ?3� �"�?����$%�� �� �̂�� Uuv�:E� ���������+�� OF;gD� &� ��+����#��","�1�2#��� �1�+���+� ���� �̂��Uuv�:E���'���1�Og>;j�eL<D���+� ��� �̂����Uuv�:E�{��I��II�YA�
?�$� ���/���2� �1������� � 2�/��$1()�/)�����( &��� ��(�?�� �"�?���������$2���"���+��������������" � 3+�� 2�� OLMMF� B>>j� JADLW� JWWDM� )�( 2#7�+&��"+���� ?�$1(�1�� $�� �1����,.� �1����?2������������� ��(� ���7�2����� �'��O>PQ9<DM�JM=<APD<=;�$�(�7�
����NT�"#�� �I��NT
����.5 "&������2$%��7�������".�/����'�������� � 2� �'(�$%������$1(?�����.5� o��#� $�� �1�?�$1(2#&��"+���� �1� ����.5 "&2%����� �k�/�� $+����������� ���a��0��#//����.5$1()�/)���!"#�� �k�?���������2����� �'�� O>PQ9<DM� JM=<APD<=;� �����.5?�$1(�1�2#��a���'��b��2������.5 "&$1( �1������� !�+3�����#��� 3+�
�������
���������������
��:E
U�:E
��:E
��:E
q�:E
U�:E
������������������ ������������������� ��������������������� ����U����
���������������� ������������� �� ��������������
$�� ?���� ���+�����.5 "&b���� &��� �� /�������%����/$1(7�2# �̂� "&b���� &��� v�/���*?�$%���� 1����/����.5 "&b������ 3+�����U���%����/$1(7��'���q���2# �k��+��%���"��&� �%����/��2 ��(�&���7��� � U� $+�-� � ����� �'(��1������� � 2� �'(�$%������.52� ��� ��1��$1(�%�����/ �k/,""��_�7��� U� $+� ���� ?���+����#��","�"� $�(�7�� ����?3� �2�� ����� U� ���?���� �k/,""��_�$1(7�2������.5,.*&/0'*'N�4�(O=<�������
Done
1. TestıMultiplier0
1a. Add multiplicand to product andıplace the result in Product register
2. Shift the Multiplicand register left 1 bit
3. Shift the Multiplier register right 1 bit
32nd repetition?
Start
Multiplier0 = 0Multiplier0 = 1
No: < 32 repetitions
Yes: 32 repetitions
64-bit ALU
Control test
MultiplierShift right
ProductWrite
MultiplicandShift left
64 bits
64 bits
32 bits
������������������ ������������������� ��������������������� ����U����
���������������� ������������� �� ��������������
��51��� ����%���������������,""��_�$1(7�2# �̂�� �1�;::.$"-�IPQ� L ,.*,.R'�IPQ� L�ST ,.*(O=�I8Q� L�TU
�������� �������� ������������ �������� ������������ �������� ������������ �������� ������������ �������� ����
��(���������?���� ��$1(�/�����&� ����.5���� �̂����?���%��,""��_���/����/������ �!"# �k/7��$1(,""��_��2������$%������EA=\<� gD\<������� �!"#�EA=\<�M=ZA<�����.5���51$1(�/����� �̂����?��$%�����EA=\<�$��$1�$%�� 3+��1�7� �'(��2���/2%�����/���*��51�OKh� �^�!//�q�/����k?��$%���q����� -
$�� �1�� 2��.52#��� �1���$%�� �� �̂��d<L<D�YL;A=:D� ���a��� 2���/�4����� $%�� ���"���OF;gD���+� 7��k���&�� �1�&� � 2��.5?�"��05#�1��'�2#��� ?3�� �2�� ����$1(�1&�� �̂��U $+�&� 2%�����/��?��OKh��� �U�����!"#���� ?3��JBh�$1(��#��","7�2%�����/�� �^��U� $+� 3+�����2� �1,.��!�" � 2��.5� �"+��?����#$��������( &���,.*&/0'*'N�4�(O=<�������
��51��� ����%���������������,""��_�$1(7�2# �̂�� �1�;::.$"-�IPQ� L�TU ,.*(O=�I8Q� L�TU
�������� �������������������� ����
�������� �������������������� ����
�������� ���� ��(����?��.$1(/�����&� ����.5���� �̂����?���%������( /�&� ,""��_�/����/������ �2������
$%������dA=\<�e=ZA<�����.5!"#,""��_��/�����&� ����.5 �̂����?��$%������dA=\<�7�$��$1�$%�� 3+��1�7� �'(��2���+�2#��/2%�����/��$�� ���* 3+���51�����+� �̂��OKh�q�/��-
������������������ ������������������� ��������������������� ����U����
���������������� ������������� �� ��������������
Done
1. TestıMultiplier0
1a. Add multiplicand to the left half ofıthe product and place the result inıthe left half of the Product register
2. Shift the Product register right 1 bit
3. Shift the Multiplier register right 1 bit
32nd repetition?
Start
Multiplier0 = 0Multiplier0 = 1
No: < 32 repetitions
Yes: 32 repetitions
MultiplierShift right
Write
32 bits
64 bits
32 bits
Shift right
Multiplicand
32-bit ALU
Product Control test
2���� ���� ?�"��05#� �"+��2#�/�+�� 2��.5?�"��05#�1�2#?3�$�������������+�!//!���!"#?3�� JBh�$1(�1&�� $+���/2%�����/��&� �OKh���+� 7��k���7��1,.�������!�" � 2��.5"��05#�1�?���1&�� "k�" 7��1�� � !� ?�� 2��.5!//$1(� �� )�( �̂�� 2��.5$1(?3�2%�����dA=\<�eDZ=E<DM�����$1(�4
������������������ ������������������� ��������������������� ���������
���������������� ������������� �� ��������������
,.*&/0'*'N�4�(O=<�������
Done
1. TestıProduct0
1a. Add multiplicand to the left half ofıthe product and place the result inıthe left half of the Product register
2. Shift the Product register right 1 bit
32nd repetition?
Start
Product0 = 0Product0 = 1
No: < 32 repetitions
Yes: 32 repetitions
ControlıtestWrite
32 bits
64 bits
Shift rightProduct
Multiplicand
32-bit ALU
� 2��.5?�"��05#�1�2#�%������.5�� �k/7��$1(,""��_�3+��?����#����dA=\<�eDZ=E<DM�7��1���� ���� �1&�� "k�!"#?3�$�����������" 7��1�� $�� �1��"�����$%�� ��$4���+� �� � ��'����/� 2��.5!//$1(�U��'������ ��$1(/������+� �̂������'������� �̂����?��$%�����/���/�����( /���/������ �!"��2� $%������dA=\<�e=ZA<���� �̂����?��$%������dA=\<�e=ZA<�7�$��$1
������������������ ������������������� ��������������������� ���������
���������������� ������������� �� ��������������
3+����51��� ����%���������������,""��_�$1(7�2# �̂�� �1�;::.$"-IPQ� L�TU
������������������������
������������������������
��������
��+� 7��k1� 7��1������!//!"#��̀ ��� 2��.5$1(�1���� �k������+��1�&����1� �̂�2%��������� $�� �1�� 2��.52#$%�� ��7��� �k�������� �1� ?&�����/������!//� !"#� JgZ>M=<AP� ?������̀ ��&� ,.������
���#$:U����
���!$��+� "&$a��������� ��2$%��7� ��'����/���/��"/2%����� �k�����!"����/�%��!��+ 24$a����� 3+���IUu�t���Iu����2$%��7�����/����Uut��u��)�( 7�,""��_� �̂�����u�2������2� $%����� ���24$a�����U��%��!��+ �"� ���!� ," �̂����I�u�*�#//� �"+������?3�?�����%����52%����� ��/� ��'(� �YL=:�8MLPD���'��#//������ �����4�!���)�( �� �1�����!$��+� "&$a����?�"��05#�1��+��KL;j�HD;=PLg-
$�� �1����!$��+�$a����� �"+��7�+ ���#��/����%����5$� �5��a�������'���$��a�����$1(��� ���?���1����%����5$1(�1����%����l�. � � ����2� �1����%�����!$� "&$a����?�"��05#� d;=D:<=\=;� YD<A>W� ��?3���/���!$��+�$a����?��#//������ ����� ���� �k/�+��!"#� "&31��%��"� !��2������ 3+�� ��u��I�U�qu� �'(���� �� �̂��#//� d;=D:<=\=;� 2# �k/ �̂���I�u���U�qu������� �̂����
!����� �"+���.��%����?3�?����!$��+� "&$a����/��#//������ ����)�( ����b��$1(����?3��'��cVVV�uq�)�( �%������������cVVV�����b��� �"+�������!/+ ���!$� "&$a����
������������������ ������������������� ��������������������� �����U���
���������������� ������������� �� ��������������
/��#//������ ���� �̂��U��.�!//�'��d=:ZgD�KMD;=E=>:�!"#�H>9]gD�KMD;=E=>:�)�( 2#�1����"# �1�?���� �k/&���."�+� ���
• E=:ZgD�QMD;=E=>:R����]=<�D|Q>:D:<G�U��]=<�E=Z:=\=;L:<
• W>9]gD�QMD;=E=>:R�����]=<�D|Q>:D:<G�uU�]=<�E=Z:=\=;L:<
��1�"��?�������'��*��-VLJQ���*�t��Id=Z:=\=;L:<-���UH[SRQHQW�ELDV���%����?��/��
)����'��4 �̂�� /�� ��'(� ����� ]=LE� �1�+� �^�� �U�� !"#� ��U�� �%�����/� E=:ZgD� !"#� W>9]gD�QMD;=E=>:����"%���/
3+����� ��� �k/ "&���I�u "&b���U�2#�1�+� �̂����I�����'����I���U��
�+��D|Q>:D:<� $1�/��/�s=LE��'���Uv���'���������� &1�� �̂��cVVV�uq�!//�d=:ZgD�QMD;=E=>:�7��+�������������������������������
*��-����*�t��I�-���U�������
?���+����#��","�"� �"������ ����1� 2��� a0$1(�1����������?������#��"," "&$a�����������b���cVVV�uq���'��8g>L<=:Z�K>=:<�h:=<� 3+��YL<;A�O>QM>;DEE>M� �̂����
��&�
JBh�����$%������?������#��","$� �5��a�����!"#����#�)�( m� ��3��&� �JBh�����2#��� �� ��/�����������34�%����( &� �#//������ ��������6� ������!//� JBh� 2#��� ��a������ &��?2?��#//2%�����$1(?3�� ���!$��+�&� �#//� !"#�'��b��������!//� 2�����#$�(�7��$�� �1�,.����!//��� �%���� �� ��#��$_����&� �JBh� �^��"��� ���#����JBh�$%�� ��3��2#$%��?����+����#��","�"� $%�� ��3��
������������������ ������������������� ��������������������� ���������
���������������� ������������� �� ��������������
"89�6�':���:
�I�2 ���+�&� 2%������+�7��1�?��#//�s=:LMFG�d=Z:�YLZ:=<9WDG��:D�O>PQg=PD:<�!"#� }�>�O>PQg=PD:<
• ��������
• ��������
• ��������
• ��������UI�2 !� ����%����5�+�7��1��?��#//���!$�2%����� �k�!//��:D�O>PQg=PD:<
• ���������t���������
• ���������t����������I�2 !� ����%����5�+�7��1��?��#//���!$�2%����� �k�!//�}�>�O>PQg=PD:<
• ���������t���������
• ���������t���������qI�2 �_�/�� '(��7&?���� ����TDM\g>��2�����/�� "&�U�2%������ �'(� �̂�!��$� ?�������� � 2�uI��#//�d=Z:�YLZ:=<9WDG��:D�O>PQg=PD:<�!"#�}�>�O>PQg=PD:<��1&��1&�� �1���+� 7��2 �_�/��vI�2 !� ������!//�JBh�&�����/������a���Y9g<=QgD|>M�)�( �1"��05#� �+�7��1�
�Q>����@
d��� ���� �><�J��� J��M�s��� J�J:W�s��� J�~>M�s��� J��� J�ts��� �
*?��?3�� 2��89gg�JWWDM�?����/��-
������������������ ������������������� ��������������������� �����q���
���������������� ������������� �� ��������������
�I�����Y9g<=QgD|>M��1��L<D�HDgLF� �̂����:E�!"#��L<D��'(��1��L<D�HDgLF� �̂��u:E� �'(��%��,""��_�$1(7�2��������!//� JBh� ?�&��� v� ���+� �̂�� JBh� &��� �U� ]=<� !"��� JBh� � �"+��2#$%�� ��7���/��+����#��","�"� $1(�1�Og>;j�eL<D���+� ��� $+�?�I�2 !� ������!//� 2��%�����/���2��/ '(��7&��� ����TDM\g>��I� ���� JBh� &� $+���1� �v� ]=<� 2#������!$��+�2%����� �k�?�3+� ?7�/�� ?��#//� }�>�O>PQg=PD:<��I�2 !� ��� �k/��UIu�" ?��#//�cVVV�uq�!//�d=:ZgD�KMD;=E=>:
������������������ ������������������� ��������������������� �����u���
���������������� ������������� �� ��������������
������V�9�0*/���)*:;:4:'�I�'+7!�%W&)O:<:� .XX=(*�(6)L
���$1(7�a��0��� �����������34�%����( �!"#������!//�JBh��+� +��!"�� �'�������?�/$�1�� 2# �^�����%��� ����#��/�+� 6� ����#��/ &�������� �'(����� ��+����#��","�"� ��2#�4+ ��# k��"+���� � ����#��/�+� 6� ?���+����#��","�"� � ������!//$� ��&���."� *HL<L� QL<A-� !"#������� ��ll�5 �'(���/�4�� ����#��/�+� 6� ?��$%�� ����/�4����"�� ���
���?���+����#��","�"� ������#��/&���2��� 2�7mmr��+� 6� )�( ��� ���� ���#��"��05#&� � 2�$1( �̂��+����#��/���?���+����#��","�"� ���"��05#&� ����$1(� ��2#������2%��!��� 2�7� �̂��U��"4+��'�
• � 2��%�����/�����#��","&���."���'��O>P]=:L<=>:Lg� B>Z=;� *� 2� 3� ,��-�)�( �^�� 2�$1($%������$1(������� �1����� ��'���#��","�+� 6� )�( ���� &���7����� [�YJK� * 3+�� JBh� � !� ?�/$�+�������1�-
• � 2��%�����/�����#��","!//"%���/���'��dDf9D:<=Lg�B>Z=;� *� 2� 3� "%���/-�)�( �̂�� 2�$1($%������$1(�%�������$%�� ��&� �+���+� 6�&� �#//?��$%�� �����&������$1( ���#��
����(��6�'I��6 �V����:(�����$�� �I�����#(��'�
2���'��b�������.�?�������!//� 2�����#� ��2#�/�+��1� ����#��/$1(�1����������?����22%���+�� ��. +�"���.�!//� )�( �1$�� !//?3���ll�5������ �^�����%����*dF:;AM>:>9E-� ��'�� 7�+�1��ll�5������� *JEF:;AM>:>9E-� )�( ������!//?�"��05#$1(�1��ll�5������ �̂����?��2� ��#����� ?���224/�� �̂�$1(����� �'(� 2�����������!//7� +����+�����2���1�?��#//������ ���������?3��H�8g=Q\g>Q������+����?3��BL<;A� �'(� 2���8g=Q\g>Q�2#$%�� ��$1(&�/&� ��ll�5������&�&�����'�&�" �?�&5#$1(�BL<;A�2#$%�� ��$1(�B>Z=;�������'�����*���"# �1� ��(� ���������a��0�7�2���'��b��� 2��2���" 3� "%���/���'��dg=WD���#��/���/�����-
"��05#���$%�� ���$�(�7�&� � 2� 3� "%���/&�������� 2#��a���+�����( �+��?&� ��ll�5������?����?��2� ��#� )�( ,.����!//�$�(�7�����?3�&�/��ll�5&�&���?����?��2� ��# �"1(������#���+� 7��k���&������#�� �'��?�������!//������������&� �Og>;j���'����/� *KDM=>W-� 2#��� �����$1(?3�?��� 2� 3� ,��$1(��.+�#��+� �"� ����$%�� �� ��k27�� ��� �"�����7�� ��2$%��?�������#��","$1(7�,��"�� *� !� ?������ �"����$%�� ��&� � JBh� ?�/$$1(�q-
������������������ ������������������� ��������������������� �����v���
���������������� ������������� �� ��������������
Clock cycle
Stateıelementı
1Combinational logic
Stateıelementı
2
�������������C�<��V�6�� ����� #7#�#��
2��$1(�"+���� !"��?�/$$1(�����������?���+����#��","�"� ���#��/����JBh���+����/�4����+������2%��3�(������*eDZ=E<DM-�!"#��#//�����ll�5�+� 6� �̂��'��b������2���1��/����������������?��+�� �/�+��1�K=QDg=:DG�OL;AD���'���D;<>M�h:=<��1��)�( 2#�"+���� ?�/$��7�� ��+� 7��k���� JBh� !"#�#//�����ll�5�+� 6� ����� 2# �̂�� 2� 3� ,��� ?�&5#$1(eDZ=E<DM�!"#���+����/�4�2#�1� ����#��/�%�����/���2%������#� *� 2� 3� "%���/-� &���� �1(��&�� �����?�$1(�1�2#�"+���� �� ���� &� �+���+� 6��� ����JBh�)�( 7��"+���� 7�!"��?�/$$1(�q
�'(��� ���#���� � ����#��/�+� 6� $1(2%�� �̂��%�����/������!// �'(��� ��/�����������34�%����( &� � YcKd� ����$�� ����!� ��������� ��������!� �+���+� 6� 7�� ���&�� "+� ��� c:E<M9;<=>:� PDP>MF� 2# �^���+������2%��$1(?3� �k/��!���� KO� �'��12�� ����$1(?3�/���%��!��+ &� ��!���$1(��� ����+���JWWDM� ?3��%�����//���+��KO��12�� ���� �'(�?3�2%��&���."�JBh?3��%�����/�����#��","$� �5��a�����!"#����#� HL<L� PDP>MF� �^���+������2%��&���."�!"#� d=Z:� D|<D:W� �'(�?3�&��� ��'(� ������51$1(� �QDML:W� �̂�� cPPDW=L<D� &�� "k���+��&��&� �12�� ����� *���,.��+��7�+�������_�/��7��+� ��4?2� ��� �1� ����#�+� 6� �"+��1�� ?��"� �� ���#�� ��1�/ $1�/��/�����������34�%����( &� �YcKd�?�/$$1(����1����� ���( -
PC
Instructionımemory
Instructionıaddress
Instruction
a. Instruction memory b. Program counter
Add Sum
c. Adder
������������������ ������������������� ��������������������� ���������
���������������� ������������� �� ��������������
ALU control
RegWrite
RegistersWriteıregister
Readıdata 1
Readıdata 2
Readıregister 1
Readıregister 2
Writeıdata
ALUıresult
ALU
Data
Data
Registerınumbers
a. Registers b. ALU
Zero5
5
5 3
16 32Signı
extend
b. Sign-extension unit
MemRead
MemWrite
Dataımemory
Writeıdata
Readıdata
a. Data memory unit
Address
��N! +,&�-�IY�A�� ��L�12�� ���������2#$%������$1(?�������&���."3�(������)�( �����?� ��'(� ���( 6�2#�1
�12�� ����?�� ��?3� ��7������+����( ���� ������� �� �12�� �����+� 6� ����� 2#�.��%������#���&� ��0� ��'(� �*� !� !"��?�/$$1(��-�� �����������!//�12�� ����2� ��a��������!// �̂��JMMLF�&� �H�8=gQ\g>Q���'��BL<;A��"��6����
$�� �1������ ���� �����������34�%����( &� �YcKd������!�+"#�%����( ������?3��12�� ����7�� U� ������������ ?�������!//�12�� ������51����+�� �'(�?3� ��� 2� ������$%��7�����?3�� Y9g<=QgD|>M� U� ���� ?���� "'���+� �'(��r�� �̂�����4�?����/� JBh� �+�7��*� !� ?����-
������������������ ������������������� ��������������������� ���������
���������������� ������������� �� ��������������
Mıuıx
Register 0
Register 1
Register n – 1
Register n
Mıuıx
Read data 1
Read data 2
Read registerınumber 1
Read registerınumber 2
�%�����/��51��� &1���+������2#��a����ll�5���������'���ll�5��M=<D� �̂�����%������� &1���+�?����/�12�� ����� �+����/�HD;>WDM� �'(� "'���+��12�� �����$1(��� ��� &1��� )�( "��05#���$%�� ��������!� 7�� �.�� �"+��� 3+� �'(���� ��� &1���+��12�� ����$1(������&���."�UuU��������$%��7������r���+����$1(�eDZ=E<DM�:9P]DM�!"#��+��UuU��$1(�eDZ=E<DM�WL<L�2������2� ?��2� ��#��ll�5��M=<D�*)�( ���� 2��� 2���/�4�-
n-to-1ıdecoder
Register 0
Register 1
Register n – 1C
C
D
DRegister n
C
C
D
D
Register number
Write
Register data
0
1
n – 1
n
�'(��%���� ���� &� ����+��!"# &1��&���."� �"+������#��/������� �k2#7�eDZ=E<DM� 8=gD� $1(������%�����/���$%�� ��?���+����#��","�"� � ���2���1� ��2#�/�+�� ����+��!"#��� &1��&���."2���12�� ��������� ��������#$%��7������6� ���� �7�+$%��?�������#��","&���.",��"�
������������������ ������������������� ��������������������� ���������
���������������� ������������� �� ��������������
Read registerınumber 1 Readı
data 1
Readıdata 2
Read registerınumber 2
Register fileWriteıregister
Writeıdata Write
:���'��$���N#��WG,GXG,5
$� ��&���."*HL<LQL<A-���'��]9E����?���+����#��","�"� ����� �^������ll�5���'�� $� $1(?3��+ ,+��&���."�#��+� � ����#��/�+� 6� ���?���+����#��","�"� � �?�������!//�����������$%��7������%��� ����#��/�+� 6����+��+� ���?��.�!//$1( ���#���!"#?3�� Y9g<=QgD|>M� �^���� "'��$� ��&� &���."� ��51$1(&���."� �"+���1$� "'��$1( �̂�7�7������+����( $� � 3+�� �+�� KO� )�( !� �� �%����( �+�7�$1(2#�.�� &�����$%�� ��� ��22#��.+����/�%����( ��224/���'��KOtq���'����22# �^��+��'(�6�$1( ��2������sML:;A�2� ?3��Y9g<=QgD|>M��%�����/��� "'��
PC
Instructionımemory
Readıaddress
Instruction
16 32
Add ALUıresult
Mıuıx
Registers
WriteıregisterWriteıdata
Readıdata 1
Readıdata 2
Readıregister 1Readıregister 2
Shiftıleft 2
4
Mıuıx
ALU operation3
RegWrite
MemRead
MemWrite
PCSrc
ALUSrc
MemtoReg
ALUıresult
ZeroALU
Dataımemory
Addressıı
Writeıdata
Readıdata Mı
uıx
Signıextend
Add
��+� 7��k�������$1(2# "'���+����2#�1�HL<LQL<A� 3'(���+��#��+� 24?24���( �� ������������ 2#��2��5����a�������������34�%����( �̂��"��� ���2��5�2���JWWMDEE=:Z�Y>WD!"#� 34�%����( �+�!�+"#�%����( ����2#��� ?3�� ����#��/?/�� � !"#� &���."$1(��� ���?3�?������#��"�%����( ����6� 7���2��!�"+ ?/�� � 3+���%����( �+� 6�2#��#��/�����QDML:W�)�( ��2��
������������������ ������������������� ��������������������� ����q����
���������������� ������������� �� ��������������
eDZ=E<DM� ��'�� ��2���%����( ��� � � ����� 2� ��� �1$� ��&���." �'(��%��&���."2���12�� ����7��r�� �^�,""��_�?����/� JBh� !"#� $� ��&���."$1(2#�%��&���."?���51$1(� �QDML:W� ��.+?��%����( 7��r��?����/�JBh���� 3+����
��YY�T� �&���=1*,-1H
����� ��$1($� ��&���."$1(�1����%����7�����!,����� �"+��&�� ���!"��� ��2#�/�+��1� Y9g<=QgD|>M� )�( ?3�?���� "'����ll�5�+� 6� ��.+�������"��!�+ � ���ll�5$1(2#?3��r��?����/� Y9g<=QgD|>M� �'(� "'��$� ��&� &���."� �"+���k�'���ll�5��/�4����� � � $1(��&� ��ll�5��/�4��'������1�����%����( $1(�+��&�����2���c:E<M9;<=>:�PDP>MF� �'(�?3� "'��$� ��&���."�%�����/���$%���%����( ����6� 3+���%����( � LWW���G� ���G� ����)�( �'(�!�" �̂���0� ��'(� 2#7��+�� �1�
c:E<M9;<=>:�8>MPL<000000 10001 10010 01000 00000 100000Op rs rt Rd shamt funct
�+��ME�!"#�M<�2#�.�?3� �'(��r��?����/��12�� ���� �'(� "'���+��12�� ����$1(��� ����r�� �̂������� ?����/�JBh�?�&5#$1(�MW�2#?3��r��?����/�JBh� �'(� "'���+��12�� ����$1(��� ��� &1����+���\9:;<2#?3��r��?����/�JBh� �'(���( ?��$%�����/��
��+� 7��k���� ?��"��6� ��51 ��7�+������$1(2#�%���+�$1(7�2��34�%����( 7�?3� �^���ll�5��/�4�7���� � �'(� 2��34�%����( �����1����)�/)������� 3+�� ��51&� �%����( � g>LW��'��E<>MD�*g�GE�-�� �����+� �+�7��1�g����G����*�U-
100011 00010 00001 0000000001100100Op rs rt 16 bit offset
JBh�;>:<M>g�=:Q9<���� JHH��� �e��� LWW��� E9]<ML;<��� ED<�>:�gDEE�<AL:
������������������ ������������������� ��������������������� ����q����
���������������� ������������� �� ��������������
2#�/�+�� 7�+�1&���."�+��?$1(�����2#�%���� �̂�����r��?����/� JBh� �'(�$%�����/�� "��� ����2� 2#��� �1������������'�,+��� 2��1���� �'(����+��%�����/?3��r�� �̂���ll�5��/�4�?����/�JBh���'�$� ���+� 6�� !� 7�������� &�� "+� �+�7��1�
�� ��� ����[email protected]�
00 = lw, sw01 = beq,11 = arithmetic
ALUOp Funct field OperationALUOp1 ALUOp0 F5 F4 F3 F2 F1 F0
0 0 X X X X X X 010X 1 X X X X X X 1101 X X X 0 0 0 0 0101 X X X 0 0 1 0 1101 X X X 0 1 0 0 0001 X X X 0 1 0 1 0011 X X X 1 0 1 0 111
�'(���#��"��ll�5��/�4�$1(?3���/�4�� JBh� &����/��ll�5��/�4�$1(?3� "'��$� ��!"��� "��05#�� ���� ���?���+����#��","�"� 2#)�/)�����( &����2#�1� 2� �'(���������ll�5��/�4�����%����( $1(�+��7����#��/&��� �'(�?3� "'���Y9g<=QgD|>M��+� 6
PC
Instructionımemory
Readıaddress
Instructionı[31– 0]
Instruction [20– 16]
Instruction [25– 21]
Add
Instruction [5– 0]
MemtoReg
ALUOp
MemWrite
RegWrite
MemRead
BranchRegDst
ALUSrc
Instruction [31– 26]
4
16 32Instruction [15– 0]
0
0Mıuıx
0
1
Control
Add ALUıresult
Mıuıx
0
1
RegistersWriteıregister
Writeıdata
Readıdata 1
Readıdata 2
Readıregister 1
Readıregister 2
Signıextend
Shiftıleft 2
Mıuıx
1
ALUıresult
Zero
Dataımemory
Writeıdata
Readıdata
Mıuıx
1
Instruction [15– 11]
ALUıcontrol
ALUAddress
������������������ ������������������� ��������������������� ����qU���
���������������� ������������� �� ��������������
$�� �1�"��05#&� ��ll�5$1(?3���/�4�$� ��&���."� �k2#��� ,+��� 2��%�����/�����������'��1���� 3+����������1�����1�2#&�����/�JWWMDEE=:Z�Y>WD�!"#�"4+�&� �%����( $1(?3�
c:E<M9;<=>: eDZHE<
JBhdeO
YDP<>�eDZ
eDZ�M=<D
YDPeDLW
YDP�M=<D
sML:;A JBh�Q�
JBh�Q�
e�8>MPL< � Z Z � Z Z Z � Z
B� Z � � � � Z Z � Z
d� [ � [ Z Z � Z � Z
sVS [ Z [ Z Z Z � Z �
)�( ����2���� � 2������� �'(����� ��ll�5��/�4�7�2����� &1������ �+�����2�� �!"#��[�YJK��)�( ,""��_�$1(7����22# �̂�� 2�?�"��05#� �+�7��1�
Operation2
Operation1
Operation0
Operation
ALUOp1
F3
F2
F1
F0
F (5– 0)
ALUOp0
ALUOp
ALU control block
R-format Iw sw beq
Op0
Op1
Op2
Op3
Op4
Op5
Inputs
Outputs
RegDst
ALUSrc
MemtoReg
RegWrite
MemRead
MemWrite
Branch
ALUOp1
ALUOpO
������������������ ������������������� ��������������������� ����q����
���������������� ������������� �� ��������������
6�� ����� #7#�#��"�20*LH3�=J/H3
�'(� ��7�$� ��&���."!"#�%����ll�5��/�4����+��+� ������!"��� �k�%������#��/��/��ll�5������� �'(�?��2� ��#?����$%���%����( �+� 6� $�� �1�� &������#�� �'� �"�$1( ��� �'(�?��� 2� 3� ��#��7�$%�� ��2%����� ��� �1� �� �'(�?��$4���+� $%�� �� ��k2����� �� 3+������ JBh� ��22#$%�� ��,��"����'���� &1��&���."��22#7�+��/.�5�
Clock cycle
Stateıelementı
1Combinational logic
Stateıelementı
2
MemtoReg
MemRead
MemWrite
ALUOp
ALUSrc
RegDst
PC
Instructionımemory
Readıaddress
Instructionı[31– 0]
Instruction [20– 16]
Instruction [25– 21]
Add
Instruction [5– 0]
RegWrite
4
16 32Instruction [15– 0]
0Registers
WriteıregisterWriteıdata
Writeıdata
Readıdata 1
Readıdata 2
Readıregister 1Readıregister 2
Signıextend
ALUıresult
Zero
Dataımemory
Address Readıdata Mı
uıx
1
0
Mıuıx
1
0
Mıuıx
1
0
Mıuıx
1
Instruction [15– 11]
ALUıcontrol
Shiftıleft 2
PCSrc
ALU
Add ALUıresult
�����+������2%��$%�� �����:E�JBh�!"#��12�� ����$%�� ���u:E�!"��� ��2#�/�+���+����#��","�"� � �"+��2#?3� �"�?����$%�� ������%����( ���#��5��u:E���'��� �̂��;g>;j�ML<D��#��5���*�u�����-�C�
��+� 7��k�������� ���#��$1(���$%�� ��&� ��+����#��","�"� ?��.�&r� ���� ��2#�/�+������#��","!�+"#�%����( 2#��� ?3� �"�?����$%�� �� $+�����'�� �u:E� $�� $1(� ?�/� �%����( ����������$%�� ��k27����?� �"� �1� � Uu:E� ��'�� ��� :E� $+������ 2� 7��1���������� �'(�" �"�?����$%�� ��� �"+��� !"#� 2���� ���� $1(!� �1��� �/�+��1� ����#��/�"����+� $1($%�� ��)%������� 3+�� JBh� !"#� JWWDM� ����� �+�2#������$%�� ��!$����7�� ��'�� c:E<M9;<=>:�PDP>MF� !"#� HL<L� PDP>MF� �+�2#������?3�� ����#��/3��� 1�����7�� $�� �1� �'(�?����+����#��","�"� $1(7��1&�� "k�" � 2� ��!��$� ?�������!//��+����#��","�"� ?��.�
������������������ ������������������� ��������������������� ����qq���
���������������� ������������� �� ��������������
!//�'(�6� �1�������� �'(�$1(2#?����+����#��","�"� �1&�� "k�" � ��'�� �1���� �k�?������#��","���&���
6�� ����� #7#�#��"�A.H,0�=J/H3
"��05#������!//��+����#��","�"� !//� Y9g<=� OF;gD� ����� 3+��?�� ����������`����+����#��","�"� $1(�1&�� "k�" � ���#������?3�� ����#��//� ��+� �+�����7�����a��3+� �"'(��&� �"�� 3+����� �� ��1�/ $1�/�JBh�!"#�JWWDM���/ ��'(� �� "&� �'(��1��� U� ��� ��� ���?3� ��'(� �� "&�%�����/�����#��","������( � ��� ���?3� ��'(� �� "&�%�����/���/���!"#��1������( ?3� ��'(� �� "&�%�����/����%����5$�(�7�����$�� �U���7�+�1����2%�� �^���� ?3� ��'(� �� "&��������� ��2#�/�+�� ��'(� �� "& �1� ��� ��'(� �k �1� ���%�����/���?3� ��&� ��� U� ���1�� �����"�����+ ��'(� �� "&7����#��+� ��� U� ��� ���2���1���� ��!/+ �����#��","�%����( ����%����( ��� �̂�3+� �+��6� ����22#������&���&������/� &���$1(7�+2%�� �^�?����$%�� ������6� 7�� �'(�?�����$%�� �� �k�&���� ��( 7���+�����������!//� 2� �'(�$%�� ��?�3+� ��l��$1(!�/" ��� ������!��7&!"#���2��/7� +����+�������!//� 2�&��?�l+
2��!��$� ?�������!//�?3���+����#��","/� �+���+������ !"#������!// �'(�?�������#��",","�%����( ���( �%����( $%�� ���?3��"��� OF;gD� &� ��ll�5������� 2� 2%�� �^���� �1��� ��(��12�� �������?�/� ��� �'(�?3�?�����+ ,+���+��#��+� � OF;gD� $%��?��"��05#&� $� ��&���."�����.� �"1(��7�� !� 7�� ����+�7��1�
Shiftıleft 2
PC
Memory
ı
MemData
Writeıdata
Mıuıx
0
1
RegistersWriteıregister
Writeıdata
Readıdata 1
Readıdata 2
Readıregister 1
Readıregister 2
Mıuıx
0
1
Mıuıx
0
1
4
Instructionı[15– 0]
Signıextend
3216
Instructionı[25– 21]
Instructionı[20– 16]
Instructionı[15– 0]
Instructionıregister
1 Mıuıx
0
3
2
Mıuıx
ALUıresult
ALUZero
Memoryıdataı
register
Instructionı[15– 11]
ıA
B
ALUOut
0
1
Address
%.R�,&�\�4����)*:;:(�� .�'?������#��","�%����( !�+"#�%����( ����� ��������!/+ ���$%�� ����� �̂�&�������+��
7���#��5�u� &������$�� �1�&�����.+��/�� ���� ����������������� ����� !"#������������34
������������������ ������������������� ��������������������� ����qu���
���������������� ������������� �� ��������������
�%����( $1(7�$%��������!//7��� )�( ?���51&� � YcKd� ����� ���� �����������34�%����( ?�$1(�1��������_�/��7�� �1�
�I c:E<M9;<=>:�8D<;A��'����� �%����( 2����+������2%���*YDP>MF-��%��!��+ $1(31���KO� &���.+��+����#��","�"� ��������//���+��KO�?��31�7��� �%����( ��7�
UI c:E<M9;<=>:�HD;>WD� !"#�eDZ=E<DM� 8D<;A� �'�����1�����%����( $1(�.��+�� &����!"��� �'(����� ��ll�5��/�4��+���+� 6�!"#� ��1��&���."?��eDZ=E<DM�?��������%�����/�r��?����/�JBh��+�7�
�I V|D;9<=>:G� YDP>MF� JWWMDEE� O>PQ9<L<=>:� ��'�� sML:;A� O>PQgD<=>:� $�� �1����$%�� ��� V|D;9<=>:� 2#!���+� ���7�&�����.+��/�%����( $1(�+��&�����7�� 3+���51�%����( $1(�+��&�����7� �̂��%����( �1(������%����5� JBh� �k2#$%������%����5�+�����%����( � ��51 �^�����+��&���."� JBh� �k2#$%������%����5�%��!��+ &� ��+������2%��$1(��� ����+��&���."�!"#���51����sML:;A�JBh��k2#�%����5$1(��.+&� �%����( �+�7��*KO-
qI YDP>MF�J;;DEE���'��e�<FQD�c:E<ME<M9;<=>:�O>PQgD<=>:���51$1(�%����( )�( �+��&�����7����� �^��%����( �1(����/����+�� &1��&���."2����+������2%��� ?�&�������1�2#�1����+�� &1��&���."� !"#?���51�%����( $1(�+��&�����7�� �̂��%����( ?�����%����5 �1(������12�� �����?�&����1�2#$%������%��,""��_�$1(7�7� �k/?��12�� ����
uI �M=<D� ]L;j� )�( 2# ��&��� o��#��51����+��&���."2����+������2%��� �'�����%��&���."$1(�+��7�7� �k/?��12�� ����
2�����$%�� ��?�� u� &������� �"+��&�� �������� ���� 7�+������$1(2#�%��7����� ��+����/�4�7�$��$1� $�� �1� �'(� 2���"�����$%�� ��&�� �����7��_�/���� $1(��&� &���."!�+"#3+� �"# �1�� � ���#�� ��7�!� ?��$��/�+�2#��� �%��/��?&� �%����( $1(�+��&�����?��?3���� �� � ��'���%��&���."$1(7�7� �k/$1(�12�� ����?� �̂����� ?�������!// ��2� �����_�/�����$%�� �����a�����0��"� $1(�1����������?����!��!�#!2�!2 ���$%�� ��7�?��#�/�12�� ����� ��'�eDZ=E<DM�}ML:E\DM�BL:Z9LZD�*e}B-�)�( �e}B�� �"+���1��������_�/�����$%�� ��$�� �u�&������&�� ���7�� �1�
�I�c:E<M9;<=>:�8D<;AY�]�B�E��@^_D`a_D�]�_D�b�8a
)�( �1���������+�� �%��&���."���2����+������2%���%��!��+ $1(31��� KO��� �k/7��$1(� �12�� �����ce�!"#��%���+��KO�/����/�q������6����
������������������ ������������������� ��������������������� ����qv���
���������������� ������������� �� ��������������
UI�c:E<M9;<=>:�HD;>WD�!"#�eDZ=E<DM�8D<;A��]�Y�A^Y^�VT��``;?�]�Y�A^Y^�ZT�c``a�deC� �]�_D�b�I��A�T�M ���IY^�VTZ`L�SS��La
�I������#��",")�( !���+� ���7�?�!�+"#�%����( YDP>MF�eD\DMD:;DR
�deC� �]���b���A�T�M ���IY^�VTZ`Lae�<FQDR
�deC� �]����F�?asML:;AR
���I�]]?L�_D�]��deC� a
qI�YDP>MF�J;;DEE���'��e�<FQD�c:E<ME<M9;<=>:�O>PQgD<=>:B>LWE�L:W�E<>MDE�L;;DEE�PDP>MF
BKY�]�B�E��@^�deC� `a��'�
B�E��@^�deC� `�]�?ae�<FQD�=:E<M9;<=>:E�\=:=EA
Y�A^Y^�VT��``�]��deC� auI��M=<D�sL;j
Y�A^Y^�ZT�c``]�BKYa
�'(��%��$4�&��������������!"#2%��!��� e}B� ���"��05#&� �"4 +��%����( $1($%�������#��","!"���e}B�� �"+���2#������!� 7�� ���� �+�7��1�
Step nameAction for R-type
instructionsAction for memory-reference
instructionsAction for branches
Action for jumps
Instruction fetch IR = Memory[PC]PC = PC + 4
Instruction A = Reg [IR[25-21]]decode/register fetch B = Reg [IR[20-16]]
ALUOut = PC + (sign-extend (IR[15-0]) << 2)
Execution, address ALUOut = A op B ALUOut = A + sign-extend if (A ==B) then PC = PC [31-28] IIcomputation, branch/ (IR[15-0]) PC = ALUOut (IR[25-0]<<2)jump completion
Memory access or R-type Reg [IR[15-11]] = Load: MDR = Memory[ALUOut]completion ALUOut or
Store: Memory [ALUOut] = B
Memory read completion Load: Reg[IR[20-16]] = MDR
������������������ ������������������� ��������������������� ����q����
���������������� ������������� �� ��������������
2�������.� ��?�������!//� 2� 3� "%���/� ��2# ��(����������!//�������� !,��������#�*d<L<D�H=LZMLP-���'����� &1���JdY�OALM<� �'(�!� ��� �"'(��7��!"# '(��7&?���� �"1(������#�+� 6� ���� m� ��3�� ��$��4�� !"#� m� ��3����� �"1(������#� )�( !,��������#� �"+��&� ��+����#��","�"� �1��������!� 7�� �1�
PCWriteıPCSource = 10
ALUSrcA = 1ıALUSrcB = 00ıALUOp = 01ıPCWriteCondı
PCSource = 01
ALUSrcA =1ıALUSrcB = 00ıALUOp= 10
RegDst = 1ıRegWriteı
MemtoReg = 0
MemWriteıIorD = 1
MemReadıIorD = 1
ALUSrcA = 1ıALUSrcB = 10ıALUOp = 00
RegDst = 0ıRegWriteı
MemtoReg =1ıı
ALUSrcA = 0ıALUSrcB = 11ıALUOp = 00
MemReadıALUSrcA = 0ı
IorD = 0ıIRWriteı
ALUSrcB = 01ıALUOp = 00ı
PCWriteıPCSource = 00
Instruction fetchInstruction decode/ı
register fetch
Jumpıcompletion
BranchıcompletionExecution
Memory addressıcomputation
Memoryıaccess
Memoryıaccess R-type completion
Write-back step
(Op = 'LW') or (Op = 'SW') (Op = R-type)
(Op
= 'B
EQ')
(Op
= 'J
')
(Op = 'SW
')
(Op
= 'L
W')
4
01
9862
753
Start
)�( ����2#2#�%��!,��������#� �"+�������!// �^�� 2�7�����?3�� 2� 3� ,���e�Y���'��KBJ��k7��$�� �1�&�����.+��/,.����!//�)�( "��05#&� ��+����/�4�$1(7��2#�1����4� �̂�� c:E<M9;<=>:� eDZ=E<DM� !"#����#&� ��+����/�4�� �+�� ��$��4�2# �̂���ll�5�%�����/��/�4�� Y9g<=QgD|>M� !"#� JBh� �������/��� �"1(������#� )�( "��05#&� ��+����/�4��1�������!� 7�� ���� �?�$1(�1�2#7�+&��"+���� ���"# �1�?�������!//������� ���,.��+����?2 ��(� ���������a��0�7�2��������!//� 2�����# 3� "%���/$�(�7�
������������������ ������������������� ��������������������� ����q����
���������������� ������������� �� ��������������
PCWrite
PCWriteCond
IorD
MemtoReg
PCSource
ALUOp
ALUSrcB
ALUSrcA
RegWrite
RegDst
NS3NS2NS1NS0
Op5
Op4
Op3
Op2
Op1
Op0
S3
S2
S1
S0
State register
IRWrite
MemRead
MemWrite
Instruction registerıopcode field
Outputs
Control logic
Inputs
A0/-1X-1L-GEE0*L
��+� 7��k���� !���+�2#�1!��$� ������!//����?3�� e�Y� ��'�� KBJ� !"��� !�+������!//��'�!��7&��+����/�4��k�� � $%��7����"%��/��� � ����2� ��!��$� ?�������!//�+����/�4�&� ��+����#��","�"� ?�"��05#&� ��� &1����!���� )�( 3+���%�������/�#��?����!��7&��l��!"#���2��/&��,��"��#��+� ������!//� ���� &1��P=;M>=:E<M9;<=>:�$%�����!�"����P=;M>LEEDP]gDM�!"��$%������"" �.+��+����#��","�"� �)�( ���2��2#�%����������#��?�������!//!"��� �� 3+��?�� ��������$1(2#���/��4 ��'�2%��"� ��+����#��","�"� ?��$%�� ��!$���+����#��","�"� $1(�1�����������!//�'(�6�7�� +���1����� $�� �1����,.��+���1������?2?�������!//��+����#��","�"� ����?3��Y=;M>QM>ZMLP�������a��0� ��(� ���7�2�� �����&� ,.�,"���+� 6�7�$�(�7�
Initialırepresentation
Finite stateıdiagram
Microprogram
Sequencingıcontrol
Explicit nextıstate function
Microprogram counterı+ dispatch ROMS
Logicırepresentation
Logicıequations
Truthıtables
Implementationıtechnique
Programmableılogic array
Read onlyımemory
������������������ ������������������� ��������������������� ����q����
���������������� ������������� �� ��������������
"89�6�':���:
�I�2 �_�/���+����#��/�+� 6����?���+����#��","�"� UI�2 �_�/��&������?������#��","�%����( ���( �%����( &� ��+����#��","�"� �I�������!//��+����#��","�"� �?3��d=:ZgD�OF;gD�!"#�Y9g<=�OF;gD�JQQM>L;A��1&��1&�� �1��+� �����+� 7��2 �������+� ��#��/qI�HL<L�QL<A��'���#7��!"#�O>:<M>g��'��#7���1���� ��'����'��1����������_������'�7�+���+� 7�uI�?������#��","�%����( !�+"#�%����( �������+����#��","�"� �1&������?����$%�� ����+� 7�vI 2����0�!�� )�/"1� �"+��
g���<UG��*�<�-g���<�G�q*�<�-]Df��<UG��<�G�D:W�QM>ZMLP �LEE9PD�:><LWW��<uG��<UG��<�E���<uG��*�<�-
D:W�QM>ZMLPR iI ��D:W�>\�QM>ZMLP��� �����!//��+����#��","�"� ?��$%�� ��!//�Y9g<=�OF;gD�2 ��/�%������+�7��1�
vI�I ���$%�� ��?�!�+"#�%����( 2#?3� �"��1(�OF;gDvIUI $1(�OF;gD�$1(�����+����#��","�"� �%��"� $%�� ���#7���.+vI�I ��!���� �"+��&�� ���2#?3� �"�?����$%�� ��$�� �����1(� OF;gD� !"#�� �̂��1(����$1�
����OF;gD�}=PD� �̂��q�:E�I�������!//��+����#��","�"� ����?3��P=;M>QM>ZMLP��1&��1&�� �1���'�7�+���+� 7���
������������������ ������������������� ��������������������� ����u����
���������������� ������������� �� ��������������
������c�4�+$!�)��� !�"!#$7W*/�_�F�G���
���$%��� K=QDg=:D� ���� �^���� ��(���#��$_�?����/��+����#��","�"� ?�"��05#&� ��� ��(�� }AM>9ZAQ9<� �"+���'�� �1���$%�� ���"���%����( ��������?� �"����( 6� �����+� 3+�����4���+���� ��1��&���������#��/���&�������+�����&�����'��&���$1(�������+��&��� �"'�� �'(�����( !�"��"�����$1(������/&��� �"'���&���$1(�U��%��&��� �"'��$1(7�2��&���!�����%�� �'(�?�� �"k&����"4���2�� �"'��&���� !"#� &���$1(� �� $%�����!�� �"'��&������� �'(�?�� �"'�!�+ �"k&�������� ���1��#� �%�����/�+��!����( �"����?�&���$1(�����.+ �1� ��������1�����# '(� �%�����/�%��?�� �"k&���!�����2�� �"'�� �1� � �� ���� !"#� �1��3�#�%�����/$%�����!�� �"k&������2�� �"'��&��� �1� ���������� ���1��$%�� �� �1� ��������22#��� ?3� �"�?����$%�� ��$�� �����3�(�� � !�+��� ���1��$%�� ��� �� ��� !/+ ���$%�� ��?�!�+"#&������� !"���+ �+�� ��22#?3� �"�?����$%�� �� �1� � �� 3�(�� ���( � $�� �1� �'(� 2������1��$%�� �� �1� � �� ��� 2#��� !����( �"����?�� ��k2�+���2������2� 2#$%������%�� �'(�?�� �"k&������2�� �"'��&���� !"��2� ��!��$�� � U� �+�����2������ !�+����1��$%�� ��� �� ��� �'(���!��!����( �"����� !"���+ &��� �"'��$1(!��7����?����$1(� U� �%������� ��!���k������$1(2#!��&��� �"'��7��+�7�� �������/$1(��$1(� U� �%��"� �%��&��� �"'���!"# �'(���$1(�U��%��&��� �"'�� ��k2!"���+ ?����$1(���!�� �"k&���!"# �"'��&������$1(� U� �k�����$1(2#��/&��� �"'��$1(!����( �"����!"��2����!����$%�� ���+�7�� �+ ,"?�� ��$4�&������������$%��7�7������6����� �^����
?���+����#��","�"� �������� ��(��}AM>9ZAQ9<�����$%���K=QDg=:D��k��.+?�"��05# 1������ �'�� �'(��%����( !���.�� 8D<;A� &���� !"#� �.��+ 7�$%������ HD;>WD� ?�3+� �"��1���+����#��","�%�����/���� 8D<;A� �k�%��"� � 8D<;A� �%����( ��7�&������� !"# �'(��%����( !��$%�����V|D;9<D��%����( $1(�U��k��+� �#��+� ����HD;>WD�!"#���+���8D<;A��k�%��"� $%������8D<;A��%����( $1(���&������)�( �+ ,"?���1�%����( $1(�.�$%�� �����+����#��","�"� �����+����( �%����( ?� �"� 1������� !� ?����
2�����2#�/�+����$%�� ��� �� �%����( ��517�+�1� K=QDg=:D� ����� 2#?3� �"�?����$%�� ���� �Uq� ��+�� �"�� ?�&5#$1( �'(��1���$%��� K=QDg=:D� 2#?3� �"� �1� � �q� ��+�� �"� $+������ ��+� 7��k����2#�� ��7��+��!�+"#�%����( 7�+�������8D<;A���'��.��+��&�������������7��$�� �1� �'(� 2��!�+"#��+��&� ��+����#��","�"� ������?��/�����7� �1� ���( �%����( ?� �"����( 6� $+�����
������������������ ������������������� ��������������������� ����u����
���������������� ������������� �� ��������������
Instructionıfetch
Reg ALUDataı
accessReg
8 nsInstructionı
fetchReg ALU
Dataıaccess
Reg
8 nsInstructionı
fetch
8 ns
Time
lw $1, 100($0)
lw $2, 200($0)
lw $3, 300($0)
2 4 6 8 10 12 14 16 18
2 4 6 8 10 12 14
...
Programıexecutionıorderı(in instructions)
Instructionıfetch
Reg ALUDataı
accessReg
Time
lw $1, 100($0)
lw $2, 200($0)
lw $3, 300($0)
2 nsInstructionı
fetchReg ALU
Dataıaccess
Reg
2 nsInstructionı
fetchReg ALU
Dataıaccess
Reg
2 ns 2 ns 2 ns 2 ns 2 ns
ı
Programıexecutionıorderı(in instructions)
�'����$1(�"+���� ?�/$�1�2#�"+���� �1� ������� �#//� K=QDg=:D� !// +��� ���.+/����4��b��$1(�+��%����( $4��%����( �1������� $+������1�.�!//�%����( $1(2%����� *�� �.�!//-� !"#�1�%����( $1( �1(��&�� ��/��+������2%�� �1� � B>LW� !"#� d<>MD� $+������ $�� �1����,.��+����� ���$��/)�( �����������$1()�/)���� ���������+��7����� eD\DMD:;D� &� ,.�,"����+����#��","�"� $�(�7�
��������#%���WG,GXG,5�"#��=1*,-1H����%����:(���>0X3H0*3
��� ���� ���#�����$%�� ��?�"��05#&� � K=QDg=:D� ?��12#�/�+����$%��� K=QDg=:D� �����2#��#$%��7��k!�+ �'(� ��?�!�+"#&������!�� �^�����#2�����7�� � ����?�������!//��+����#��","�"� ?��������$%�� ��!//� K=QDg=:D� 7������ ��l����+� !���'����$%��?�� ��?�!�+"#&������ �^�����#2������ 3+���51&� ��� ��1��&����������&������$1(���!"#&������$1(������ ?3���#� ��'������!�+ ���1��#� �1� ������ $+������ 3+��1�!"����k� 7�+������$1(2#!/+ ������$%��?�"��05#&� �K=QDg=:D�7����l��?�"��05#� �"+���1� �1���+��d<M9;<9MLg�CL�LMW�*� 2#�"+���� ��(� ���?����&����7�-� ��� ��4�1���22��!���'����!��?��!�+"#&������������$%�� ��7� �̂�����#2������ $%��?���� ���� ���?�&� � OKh� $1(2#$%��� K=QDg=:D� �����1�4���5�$1(���&���� !"#$%�� ��)%���)������/�� � *)�( !��$� ���?3��4���5�$1()%���)�������1�� 2#&�!�� ��/!��$� ?�������!//��+����#��","�"� !//� Y9g<=�;F;gD� ?�/$$1(� u� ��� �̂����"�4���5�)%���)��� �'(�?��OKh��1&�� "k�-�$�� �1� �'(� 2���4���5�$4�3������ $%�� ������������ !� 7�� ���
������������������ ������������������� ��������������������� ����uU���
���������������� ������������� �� ��������������
Instructionımemory
Address
4
32
0
Add Addıresult
Shiftıleft 2
Instruction
Mıuıx
0
1
Add
PC
0Writeıdata
Mıuıx
1Registers
Readıdata 1
Readıdata 2
Readıregister 1
Readıregister 2
16Signı
extend
Writeıregister
Writeıdata
ReadıdataAddress
Dataımemory
1
ALUıresult
Mıuıx
ALUZero
IF: Instruction fetch ID: Instruction decode/ıregister file read
EX: Execute/ıaddress calculation
MEM: Memory access WB: Write back
��� ���� ���#���� $� ��&���."$1( 3'(���+��#��+� �4���5� ��(� ���� �� �/�1��+����$%�� ��?�/�� �.�!//� ��'�� /� �%����( &� ��+����#��","�"� 2# �^��4������+����$%��K=QDg=:D��1�� 3+�����$%�� ��&� �%����( �sML:;A�!"#���� &1��&���."�"�/7�?��eDZ=E<DM� *���2#�� ?����&����7�-� ��+� 7��k�����22����+� !��$1(��� �%���� �� �'����?��&���.")�( $%�� ��?�!�+"#&������&� !�+"#�%����( � 7�+�#������ �� 3+����� ��2#7�+$��/�+�&���."?����&5#����� �^�&� �."���$%�� ��&� �%����( ?� ��� ��4�1�?� /'�� ����#//� HL<L� KL<A� &� � K=QDg=:D� 2� ��� �1���?�+s9\\DM� ?��!�+"#�+��)�( ��#��","?�!�+"#&������&� �%����( �̂�����#!��2������ � !� 7�� ���
Instructionımemory
Address
4
32
0
Add Addıresult
Shiftıleft 2
Inst
ruct
ion
IF/ID EX/MEM MEM/WB
Mıuıx
0
1
Add
PC
0
Address
Writeıdata
Mıuıx
1Registers
Readıdata 1
Readıdata 2
Readıregister 1
Readıregister 2
16Signı
extend
Writeıregister
Writeıdata
Readıdata
Dataımemory
1
ALUıresult
Mıuıx
ALUZero
ID/EX
������������������ ������������������� ��������������������� ����u����
���������������� ������������� �� ��������������
�'(�!��$� ��&���."?�� �^�����#2�����7�!"��� �4������1���+� ���( �'�� ���!����ll�5��/�4�&� !�+"#�%����( ?�� �^�����#2������ � 2#�� ��7�2�����)�( �/�+���ll�5��/�4�$1(?3�!�+"#&����������� !�+ ���.���/��� �^�3��� 1������ 7�+������!�����2�����7�� �'(�?����ll�5��/�4�?�!�+"#&������!�� �^�����#2�����7�� 2� ��� �1����+ ,+����ll�5��/�4�$1(�HD;>WD�7�&� !�+"#�%����( 7���/!�+"#&������&� �K=QDg=:D������ !� ?� ���$� �1���&� ���� ��+� 7��k�������� ��?����2#�/�+�� ��ll�5��/�4�/� ��+� ���� �̂�&� �%����( �+��6� )�( ��+� ?�� K=QDg=:D� �+�������%����( ��224/��� !�+�.��r���"�/��?3��%����( ��224/��� 3+����ll�5�eDZ=E<DM��M=<D���'����ll�5 "'���KO� �̂����
PC
Instructionımemory
Inst
ruct
ion
Add
Instructionı[20– 16]
Mem
toR
eg
ALUOp
Branch
RegDst
ALUSrc
4
16 32Instructionı[15– 0]
0
0
Mıuıx
0
1
Add Addıresult
RegistersWriteıregister
Writeıdata
Readıdata 1
Readıdata 2
Readıregister 1
Readıregister 2
Signıextend
Mıuıx
1
ALUıresult
Zero
Writeıdata
Readıdata
Mıuıx
1
ALUıcontrol
Shiftıleft 2
Reg
Writ
e
MemRead
Control
ALU
Instructionı[15– 11]
6
EX
M
WB
M
WB
WBIF/ID
PCSrc
ID/EX
EX/MEM
MEM/WB
Mıuıx
0
1
Mem
Writ
e
AddressDataı
memory
Address
�'(� �^������#��?�����_�/��� K=QDg=:D� ?�$� �x�/���2� ����?3��.����?�����_�/��!$�� �!�+"#� sg>;j� !� ���$%�� ��&� � K=QDg=:D� ?�!�+"#�+��)�( 2#&������� s9\\DM!"#� ���$1(�1���!� �$� ���)���2#!� �� ��� &1��&���."� �+�����$1(�1���!� ����&��2#!� �� ����+��&���."� �+��� ����#��/?$1(�1���?3� �� �'(���#��","$�� ��2#!� �$�� ���!"#� ��51$1(� ����#��/?7�+�1���?3� ��2#!� �1� �+����#��/ $+������ �7�+�1���!� �?6�$�� ����
������������������ ������������������� ��������������������� ����uq���
���������������� ������������� �� ��������������
IM Reg DM Reg
IM Reg DM Reg
CC 1 CC 2 CC 3 CC 4 CC 5 CC 6
Time (in clock cycles)
lw $10, 20($1)
Programıexecutionıorderı(in instructions)
sub $11, $2, $3
ALU
ALU
3+�� ��51&� �%����( � g�� � ���GU�*��-� 2#�1���� 8D<;A� ��'�� �+���%����( 2��� c:E<M9;<=>:�YDP>MF� �1����+��&���."2�� �2�� ����$1(� �� ?�� OF;gD� $1(� U� ?3�� JBh� ��#��","!"#�+��&���."2���HL<L�YDP>MF�?��OF;gD�$1(�q� �̂����
��Y6�:%��Z��&�����������:(���>0X3H0*3
?����$%��� K=QDg=:D� �1��l���"��$1( �^��4������+���#��$_����!"#���$%�� ��&� K=QDg=:D�$�� ��������# k���'����l����51�� ���� &� �#//��'��eDE>9M;D��+� 6���� ?3� ���+������ *d<M9;<9MLg� CL�LMW-� ��l��&� �����#��","&���.")�( �1���� �1(�� �'(� ���� *HL<L�CL�LMW-� !"#� ��l��������%����( ��7�&� �#//?���51���� @9PQ� ��'�� sML:;A� *O>:<M>g�CL�LMW-� )�( ?�$1(�1�2#�"+���� ��l��!�+"#���!"#���!����l����+��6� �?3���_1����'��b��� � �+�7��1�� ��� ���G���f���
d<M9;<9MLg� CL�LMW� �^���l��$1( ��2���� ���� &� �#//7�+�� ��/���$%��� K=QDg=:D 3+����51&� ��+������2%��)�( $%������$1( �^�$�� �c:E<M9;<=>:�YDP>MF�!"#�HL<L�YDP>MF������6��������� ����2��5����&�� "+� !"#"� �� ���#���+�2#�/�+�$1(�OF;gD�$1(�q������YDP>MF�2#�.�?3� �� �^��c:E<M9;<=>:�YDP>MF� �'(�$%������8D<;A�!"#�HL<L�YDP>MF� �'(�$%������+��&���."��������� )�( ��l���1���22#!��7����� ��(�� c:E<L:;D� &� � ����#��/����6� ?��������?��/����������6� ���7�� ?���51�1���� ��(�� c:E<L:;D� ��2$%��7�����!��� c:E<M9;<=>:� YDP>MF!"#� HL<L� YDP>MF� ?���+���/� s9E� $1( �^�����#2������ ��'�� !��� OL;AD� &� � c:E<M9;<=>:�YDP>MF���/�HL<L�YDP>MF����2�����*� 2#�"+���+�7�?�/$$1(��-
�1���51���( &� � d<M9;<9MLg� CL�LMW� $1(7�$%�����!��7&7�!"���'�� ��51$1(��+����#��","�"� ��� ?3��JBh� �'(����/���KO�?����$%��� c:E<M9;<=>:�8D<;A�!"#�$%������V|D;9<D��%����( ��������� ����1� JBh� �1� � �� ���2#$%��?��7�+������$%��� K=QDg=:D� 7�� )�( !��7&���� ��(�c:E<L:;D���'�� ��(��JBh�?��$%�� ��!�� �̂�����#2������U����� �̂����
������������������ ������������������� ��������������������� ����uu���
���������������� ������������� �� ��������������
Reg
IM
Reg
Reg
IM
CC 1 CC 2 CC 3 CC 4 CC 5 CC 6
Time (in clock cycles)
lw $2, 20($1)
Programıexecutionıorderı(in instructions)
and $4, $2, $5
IM Reg DM Reg
IM DM Reg
IM DM Reg
CC 7 CC 8 CC 9
or $8, $2, $6
add $9, $4, $2
slt $1, $6, $7
DM Reg
Reg
Reg
DM
K� ����f���HL<L� CL�LMW� ����� �^���l��$1( ��2�������#��","�%����( $1(�1���� �1(�� �'(� ���
*HDQD:WD:;F-� ���� ���� ���#��2�����&�� /�� ��2#�/�+���51���$%�� ��&� �%����( � B����$1(���( ����� &���."$1(7�2����+������2#�%��!��+ $1(� U�t��� 2#�.��%��&����� �k/?� �2�� ����� �U�?�� OF;gD� $1(� u� *���,.��+��7�+$��/�+�!�+"#� OF;gD� &� � !�+"#�%����( �1���$%�� ����+� 7�� ?��"� �"�/7���2��5�&���������$%�� ��?�/$$1(� u� �1����� ���( -� $�� �1� �'(� 2�� �̂����$%�� ��$1( �1(��&�� ��/��+������2%��� )�( 2#7�&���."���2����+������2%��?����2/&� �OF;gD� $1(� q� ?�&5#$1(�%����( ������� ���?3� �� �2�� ������U�!"# �2�� ������u�?��OF;gD�$1(�U�$�� �1�&���." �2�� ������U����2#7������$%�� ��&� �%����( !��)�( 2# ��k2����?��OF;gD�$1(�u�)�( �#//7�+�������%��&���."$1(2#7���/?����������#��","7��� !� ��� ����1���?����
��� �2�� ���� 1������������.��+��!"# &1��7���������������#��","&���."�.���� ����� ��2#�/�+�������$%�� ��&� �%����( $1(�U������3�����1��U�OF;gD�2#$%��?�������#��","&� ��+����#��","�"� �.���� � � �������!����l��&� � HL<L� CL�LMW� ��2$%��7����)�m�n!�������!$���%����( �'(�6�$1(7�+�1���?3�&���."$1( �1(��&�� ��� &��7��#��+� �%����( $1(���!"#�U�$�� �1���� 7�+$%��?�����$%�� ��&� ��!���,�!�"�7�2�� ��� ��� ��4�1��%����( $1(����!$�����$1(�4�'��:>Q�*�>��QDML<=>:-�����1���������+�7�+�1�����#��","?6���'���.+ o���(� �
2�� ��g� �UGU�*��-L:W �qG�UG�u
!��7& �^�
������������������ ������������������� ��������������������� ����uv���
���������������� ������������� �� ��������������
g� �UGU�*��-:>Q:>QL:W �qG�UG�u
�̂������+� 7��k���&�� �1�&� ���!$���%����( � :>Q� &��7������ $%��?����!����1&��?�l+!"#
���� �"'� �"�?����$%�� �����&���� ��� ��4�1�2� �1�����`��� O>PQ=gDM� ?��������$%������Q<=P=�D� �%����( ?�� ���#����/���$%�� ��&� ��+����#��","�"� $1(�1� K=QDg=:D� ���� �1� "%���/�%����( ?��+� 3+�
2�� ��g� �UGU�*��-L:W �qG�UG�u>M �uG�uG��LWW �vG�vG��|>M ��G��G��
!��7&���� �1� �%����( ?��+ �̂�g� �UGU�*��-LWW �vG�vG��|>M ��G��G��L:W �qG�UG�u>M �uG�uG��
�̂����2#�� ���+� ��7�+������ �1� �%����( ?�"��05#$1( �^�����%���%����( � >M� �uG�uG��� ��
$%�� ���+�������%����( � L:W� �qG�UG�u� 7�� ���#2#$%��?���+� �2�� ����$1(� u� $1(?3�?������#��",",��"�7��#��+� ���$%���%����( �L:W��qG�UG�u�� 3+�
g� �UGU�*��->M �uG�uG��LWW �vG�vG��L:W �qG�UG�u|>M ��G��G��
������������������ ������������������� ��������������������� ����u����
���������������� ������������� �� ��������������
���2���1� ��2#!����l��&� � HL<L� CL�LMW� 7��������� p���!��� �'(�2#7�7�+��� !��7&��!���� )�( !�+ �� ��$%�� ��7��.���� /���+����#��","�"� 7�+�1� K=QDg=:D� ���a���"�����&� ���� \>M�LMW� 3+����51�%����( � E9]��UG��G�����.+����/�%����( � L:W� ��UG�UG�u�)�( &���."&� � �U� $1(�.���� ����� 2#�.��%��7� �k/$1( �2�� ����?��OF;gD� $1(� !�+ ��������$1(2#�+ �+��+�$1(7���?3��+��?��OF;gD�$1(�q�7���7�+��� ��?��&���."�.��%���� �k/?� �2�� ����$1(�u� �̂�����*� !� ��� ����1���-
IM Reg
IM Reg
CC 1 CC 2 CC 3 CC 4 CC 5 CC 6
Time (in clock cycles)
sub $2, $1, $3
Programıexecution orderı(in instructions)
and $12, $2, $5
IM Reg DM Reg
IM DM Reg
IM DM Reg
CC 7 CC 8 CC 9
10 10 10 10 10/– 20 – 20 – 20 – 20 – 20
or $13, $6, $2
add $14, $2, $2
sw $15, 100($2)
Value of register $2 :
DM Reg
Reg
Reg
Reg
X X X – 20 X X X X XValue of EX/MEM :X X X X – 20 X X X XValue of MEM/WB :
DM
$�� �1�2#�/�+� ��7�+2%�� �̂���� �1� �"�7���/�����4�� �'(��%���+�&� �2�� ������U�7�?3�?�� OF;gD� $1(� u� !�+��+� 7��k����1�"��6� ��51$1( ��7�+������� \>M�LMW� 7� 3+���51&���."$1(��� ���?3�7���?��OF;gD�$1(�q�!$�$1(2# �̂��OF;gD�$1(���)�( ��51� �"+��2# ��&���?� �'(� �̂�����+���+�2����+������2%�� &���� �k/?� �2�� ���� �̂����� )�( ����� !����l����������4�� 3+� ��� $�� �1�?���51$1(�����4�� �̂������4��$1(��#$%���p���!���2# �1�������4��?�"��05#�1��+�� E<Lgg� )�( ���� E<Lgg� &� p���!��������'����$%�� ���%����( ��)%���?�� K=QDg=:D� ����� ��� ��4�1����+����#��","�"� $1(!����l���HL<L�CL�LMW����p���!���2� ��� �1� 2�$1(������2��/���\>M�LMW�����E<Lgg�!"#�� 2 $1($%������$1(�\>M�LMW� ����&������*� !� 7�� ���-
������������������ ������������������� ��������������������� ����u����
���������������� ������������� �� ��������������
Reg
IM
Reg
Reg
IM
CC 1 CC 2 CC 3 CC 4 CC 5 CC 6
Time (in clock cycles)
lw $2, 20($1)
Programıexecutionıorderı(in instructions)
and $4, $2, $5
IM Reg DM Reg
IM DM Reg
IM DM Reg
CC 7 CC 8 CC 9
or $8, $2, $6
add $9, $4, $2
slt $1, $6, $7
DM Reg
Reg
Reg
DM
lw $2, 20($1)
Programıexecutionıorderı(in instructions)
and $4, $2, $5
or $8, $2, $6
add $9, $4, $2
slt $1, $6, $7
Reg
IM
Reg
Reg
IM DM
CC 1 CC 2 CC 3 CC 4 CC 5 CC 6Time (in clock cycles)
IM Reg DM RegIM
IM DM Reg
IM DM Reg
CC 7 CC 8 CC 9 CC 10
DM Reg
RegReg
Reg
bubble
PCInstructionı
memory
Registers
Mıuıx
Mıuıx
Mıuıx
Control
ALU
EX
M
WB
M
WB
WB
ID/EX
EX/MEM
MEM/WB
Dataımemory
Mıuıx
Hazardıdetectionı
unit
Forwardingıunit
0
Mıuıx
IF/ID
Inst
ruct
ion
ID/EX.MemRead
IF/ID
Writ
e
PC
Writ
e
ID/EX.RegisterRt
IF/ID.RegisterRd
IF/ID.RegisterRt
IF/ID.RegisterRt
IF/ID.RegisterRs
RtRs
Rd
Rt EX/MEM.RegisterRd
MEM/WB.RegisterRd
������������������ ������������������� ��������������������� ����u����
���������������� ������������� �� ��������������
��+� 7��k��� ��2#�/�+�� !��2#�1p���!����%�����/���� 8>M�LMW� !"��� !�+���2�"%���/&� �.�!//�%����( $1( ���#���k�� � 3+��?��7�+ ������E<Lgg�&� �%����( ���?��#//7� 3+������ ��������r� ������ ���HL<L�CL�LMW�$1(1$1(�4�� � �̂����$%�� ��&� )�m�n!������'��O>PQ=gDM���.+��(� � D�� ��G���f����9�g&�?��������f���
O>:<M>g� CL�LMW� ���� �̂���l��?����$%��� K=QDg=:D� $1( ��2������ @9PQ� ��'�� ���sML:;A�&� )�m�n!���� 3+����51���$%���%����( �]Df�2#$��/$1(��.+&� �%����( ��7��*$��/�+�2#��� �]ML:;A� ��'�7�+-� �'(�7�,+�������#��","�%����( ����7�!"��� q� OF;gD� !�+2���� ���� &� K=QDg=:D�)�( 2#� �%����( ��7�&�������#��","�+��$%��?���%����( ��7�$1(��.+?��K=QDg=:D����� �̂��%����( $1(,���51$1( ������sML:;A
Reg
Reg
CC 1
Time (in clock cycles)
40 beq $1, $3, 7
Programıexecutionıorderı(in instructions)
IM Reg
IM DM
IM DM
IM DM
DM
DM Reg
Reg Reg
Reg
Reg
RegIM
44 and $12, $2, $5
48 or $13, $6, $2
52 add $14, $2, $2
72 lw $4, 50($7)
CC 2 CC 3 CC 4 CC 5 CC 6 CC 7 CC 8 CC 9
Reg
���!����l��&� �O>:<M>g�CL�LMW��������������#$%��7��"��!��$� � 3+�� ����2 ��(�� 2��� a0 �'(���#��","�%����( ��# �$�sML:;A�?�� ��k2�������?����OF;gD� �'(��K=QDg=:D�2#7�7��%����( ��7�$1(�.���� &�����$%�� ��7�$��$1�)�( ��51�1�$%��?����� ���!//� 2�$1()�/)����� ����$� "'��$1( +����+��'����"�� �%����( $1(7�+��� ������2��� K=QDg=:D� ?����!"���+��� �%����( ?��+&������*8g9EA=:Z-� ���_1�1�������$%��7� +����+����� ��(� �1� � 2��8g9EA=:Z� &��7� "k����� $+������ )�( �'(��%���� ���� $�� ��&� �#//�K=QDg=:D���������� ��2#7���+����#��","�"� � ���
������������������ ������������������� ��������������������� ����v����
���������������� ������������� �� ��������������
PC Instructionımemory
4
Registers
Mıuıx
Mıuıx
Mıuıx
ALU
EX
M
WB
M
WB
WB
ID/EX
0
EX/MEM
MEM/WB
Dataımemory
Mıuıx
Hazardıdetectionı
unit
Forwardingıunit
IF.Flush
IF/ID
Signıextend
Control
Mıuıx
=
Shiftıleft 2
Mıuıx
��&�
���$%��� K=QDg=:D� �^���� ��(�� }AM>9ZAQ9<� ?����/��+����#��","�"� $1(��������#$%��7� +�������+����#��","�"� �1�����������34�%����( $1( ���#��� �������/��4 HL<L�KL<A�!"#���ll�5��/�4� �1� "k����� $+��������+� 7��k������$%���K=QDg=:D������1��l��$1( �^��4�������.+�����#����'��d<M9;<9MLg�CL�LMWG�HL<L�CL�LMW�!"#�O>:<M>g�CL�LMW�)�( ?� ������1�7��"+���� !��$� ���!��7&!//�'��b�� $+������ ?���224/���1�����������$1(�1�� ���� !"#���!����l��� CL�LMW� $1()�/)��������+��1�� 3+�� ���$%���#//� sML:;A� KMDW=;<=TD� GsML:;A�HDgLF�dg><���'����$%���HF:LP=;�d;ADW9gD� �̂����
������������������ ������������������� ��������������������� ����v����
���������������� ������������� �� ��������������
"89�6�':���:
�I����$%���K=QDg=:D�3+��?���� ��(��}AM>9ZAQ9<�7����+� 7�UI�2�����!� ���$%�� ��&� �K=QDg=:D�� �"+��
IM Reg DM Reg
IM Reg DM Reg
CC 1 CC 2 CC 3 CC 4 CC 5 CC 6
Time (in clock cycles)
lw $10, 20($1)
Programıexecutionıorderı(in instructions)
sub $11, $2, $3
ALU
ALU
2 !� ������$%�� ��&� �K=QDg=:D� �'(���#��","�%����( �+�7��1�� �����$�� !� ���!� �$1(�.����
JHH ���G��G��B� ��UGU�*�u-JHH ��G��UG��Ud� ��G��*���-JHH ���G���G��
�I� 2�����$1(��7�?�&��� U� �����+����#��","�"� � �"+���1� CLMW�LMD� �%�����/���� d<Lgg�!"#�8>M�LMW�2 "�� ���!� �%��!��+ $1(&���."�1������ �� �+�����*HDQD:WD:;F-�!"#�!� ��� �1� �%����( ?��+ �'(�$%�����!��7&��l���HL<L�CL�LMW����)�m�n!���
qI ��4?���$%�� ��&� ��+����#��","�"� !//7�+�1� K=QDg=:D� 2� 7�+ ����l��� HL<L�CL�LMW�2 �_�/��
uI��2 �_�/����l��)�( �̂��4������+����$%���K=QDg=:D�!"# ���!��$� !��7&�
������������������ ������������������� ��������������������� ����vU���
���������������� ������������� �� ��������������
������h������D�����<:��9�0*/(*)N��+ )g&��Ii�� ��G�B�E��@L
�#//� OL;AD� �^���� ��(���#��$_����?����/��+����#��","�"� � � ��(����� �k�?�����+��&���."2����+������2%��� �+����+������2%�� ��'������3+��?�������� �� ��+������2%��&� ,.���`��)�m�n!����!"#��#//p���!��� �̂�����#2������)�( �'����?�/$�1�2# ���$1(�'��b�����2�����#//�OL;AD�!"#��#//��+������2%�� ��'��!//�KLZ=:Z� $+��������+� 7��k����� �1�#//��+������2%�� ��'���'(�6��1�������� 3+��#//�dDZPD:<L<=>:�)�( ��7��"+���� ?�$1(�1�� !�+ �^���#�3����+� ��( ?����?3���`��)�m�n!���� � ����,.��+�����2#a��0� ��(� ���2�� ��������&� ��+����#��","�"� �+� 6� ��(� ������
=G/53
OL;AD� � ���� �^���� ��(���#��$_����?�����+��!"# &1��&���."2����+����#��"�"� ?����������#$%��7��� �k���( &���� ���a���"�����&� � B>;Lg=<F� �'����$%��?��&���."$1(��� ����+�� ��̂��#2%�������������+��7���+� �� �k�� )�( �"�����&� � B>;Lg=<F� ����� �̂�����%����( $1(2%�� �^�2#��� ?3� ��/+��6���7��?�"����� 3+���51$1( ��2%�� �̂�2#��� ?3������/+��6����������� ��.+?�$1()�( �����/7� +��� ���$%�� ��&� ���k2#������$%��7��� �k�� )�( ���������.+7�"���2#$%��?�����$%�� ���1��#��$_�������" � ���#��� �1� �"���/������/��������� ?���+����#��""�"� �k 3+� 1������ ������� &���."2����+������2%��� *7�+�+�2# �̂����� &���."2����+������2%����!�����'���+������2%��&���."�k���-� ��������#$%��7��� �k�� ��22#3+��?����+����#��","�"� ������$%�� ��7�$1(�Og>;j��eL<D�$1(�. &���
��+� 7��k���� �'(� 2����+������2%��$1(�1���� �k��. �����1����!� � )�( ����#//������ ����$�� ��$%�� �������+������2%��$1(�1���� �k��. $�� ������� 2#?�� ��'(� ������ �����1�����. ���� !�+������7�+�1��+������2%������ �k��. �"+��1� "�� �k2#$%��?�������#��","����3����� 3+����� ��� ��4�1��#//������ ����2� ����1��+������2%������ �k��. !"#���� �k��%(��,�����7� �^��#�/&���?������5$1(!���+� ���7�� ��+������2%����# �$?$%�� ��3�����2#�����.�� ���k2#�17�?������5$1(�. �?�&5#$1(��+������2%����# �$$1(�1���� �k��. ����!� ��k2#�1?������5����� 3+�� OL;AD� ��� �^���+������2%������ �k��. ��22#�1 �1� � �U�[]� �+����+������2%���"���*eLP-���22#�1����� �vqY]�!"#�CLMW�W=Ej�)�( �����+���+���+��&�� �%(����22#�1����� ����]� �̂����
������������������ ������������������� ��������������������� ����v����
���������������� ������������� �� ��������������
CPU
Level n
Level 2
Level 1
Levels in theımemory hierarchy
Increasing distance ıfrom the CPU in ı
access time
Size of the memory at each level
��+� 7��k��������1��+������2%��$1(�1���� �k��. ����� ��22#7�+$%��?����#��$_����?�����+��!"# &1��&���." �k�&��� ���7����&��#//���2����$1( ���#��� �����+� 3+�� ��� ���1��#��.+������&����|������ ����*)�( ��1�/ $1�/7���/�OL;AD���'��B>;Lg=<F-�!"#&���."$1(��� $%�� ����� �̂��"+� &��� �|�� ���� ���2%������"���"+� � * ��1�/ $1�/7���/��+������2%���"��-�)�( ������$%�� ��&� ����� �1(��&�� ��/�"+� �"������!"#����"�����&� �B>;Lg=<F����� ��2#��� $%�� ��&���."$1( ����� ���?3� ����.+?�� B>;Lg=<F� �+��2� 2# ��(��+��!"# &1��&���."������ ���#��?��1�/�+�� ����22# �1� �"�?�������"+� &������� !"#���2����#�����+����� ��7�$%�� ��$1(�"+� �"+�������� � * 3+���51���$%�� ��&� ����� �%��&� 2���"+� $1(� ���� �k/?��"+� $1(� U� !"#�%��&� 2��"+� $1(� U� �� �k/?��"+� $1(�� ���"%���/� �/�+� �'(� ����� ���$%�� ����/�"+� $1(� ��������"+� ?/$1(� ���k�� 7�+��.+/���# ����� �1� �"����"+� ?/$1(� ��&������� /���#�+���!"# �'(� ��$%�� ����/�"+� ?/$1(��� ��k2!"����� ���$%�� ����/�"+� ?/$1(�U��k��� �1� �"����"+� ?/$1(���" �!"�����"+� ?/$1(�U�&����� !$��2� �'(�$%�� ����/�"+� ?/$1(�U� ��k2�k��� ���"+� ?/$1(� U�����!"����?/$1(� ��&����� !$�� �̂����-�� ��������1�OL;AD�2� ��� �1?�&��$1( ���#���!"#�1�#//2����$1(1��/�.+���7�r��
�'(������#��?�����_�/���#//� OL;AD� 2� 7��1����%�����%��&��� �'(�?3��_�/��"��05#&� �OL;AD�!"#����+�� &1��&���."�� �1�
?G��j� �'�� ���!/+ &��&� ��+������2%��!"#�OL;AD� �^��+���+��6� $1(�1&�� $+����� �'(������#��?����2����
�� � ������ � &���."$1( ����� ���?3� ��������.+?�� OL;AD� )�( ��� �̂���51����+��&���."2# �1���+��eDLW�C=<�!"#���51��� &1��&���."2# �1���+���M=<D�C=<
������������������ ������������������� ��������������������� ����vq���
���������������� ������������� �� ��������������
B���� ������ � &���."$1( ����� ���2#?3� ������7�+��.+?�� OL;AD� )�( ��2# �1������ Y=EE�?���51����+��&���."�+��eDLW�Y=EE�!"#� �1������Y=EE�?���51��� &1��&���."�+���M=<D�Y=EE
$�� �1����!/+ ��+������2%��!"#�OL;AD���� �^��sg>;j�����3+��?�� ��������$1(2#�%��&���." &��!"#���2��� OL;AD� 7� +��� )�( ��� ���� �+�� OL;AD� �^���+������2%��?�l+ �1� ���� 1��� ����$1(2# ������ Y=EE� !"# �"�?�����%�� &��!"# �k/&���."&� � OL;AD� �+�� �"1(��!�" ���&��&� �OL;AD�$%��?�� ��2����7�������#��/��/"��05#���$%�� ��&� ��!����$�(�7���� �1(��&�� ��/&���."$1(�1"��05#� *7�+�����-� )�( ���!/+ &���." �̂��sg>;j� �1�3+��"����� Y=EE� &� ���$%�� ����/��+������2%��?�"��05#� �"+������ � 2#!� 7�2���#//���2�����OL;AD�!//�H=MD;<�YLQQDW�*� ���-
00001 00101 01001 01101 10001 10101 11001 11101
000
Cache
Memory
001
010
011
100
101
110
111
K���� �B�FF���D�������2������/�OL;AD�!//�H=MD;<�YLQQDW����� �^��#//���2����$1(�1�'��b�� +��$1(�4�
)�( "��05#���4��'�� �%��!��+ ?���+������2%��$4��%��!��+ 2#�1$1(��.+?�� OL;AD� �1� � ���%��!��+ $+��������� �� ��1�/�OL;AD� �^� ��'�� ����1�?���� $%�� ��&� ���)�( �1��.+� ������� *��� !�+���$1(� �� �� �-� !�+ ����� $%�� ����/��� ����� ��*�!�+"#���1 "&��#2%�����&� �� � $1(7�+)%������-� �'(���� ���$%�� ����/��$1(�1 "&��#2%���������G����G���u��k2#?��!�+"#������ ����1����$1(� �G�!"#� u� ���"%���/� )�( ������ ���$%�� ����/��$1(�1 "&��#2%����� �̂�� Uu�� �k2#��� ?����$1(�1 "&��#2%������ ���� ���7��w��� !"��2� ?����$1(�1 "&��#2%������ Uu�� ��( !$�$1( �^����� 2#�� ���+�
������������������ ������������������� ��������������������� ����vu���
���������������� ������������� �� ��������������
�%��!��+ ?�� OL;AD� &� ���+� 6� ����� 2# �̂��#7�&�����.+��/ "&�"���4$���&� "&��#2%������ )�( ���$%�� ��&� �H=MD;<�YLQQDW�OL;AD��k2#��.+?�"��05# 1������?�!� 7�����.�&r� ���
��+� 7��k��� ��2#�/�+��7�+�+�2# �̂���$1(�1 "&��#2%����� �̂��U��G�U��G����G��u����'��1��"�� /���$1(" $���������������+� �k��� ����$1( ����1����$1(���( ��'������)�( ��� ���/�+��1����( ��.+$1( ����1����$1(� ��!"��� ��2#$��/7���+� 7��+���6������ �̂�?��*�1 "&��#2%������#7�-� ��� ��4�1�2� 2%�� �̂�2#��� �1������r��� *}LZ-� �'(�?��$��/�+���$1(��( ��.+�����1 "&��#2%����� �̂��#7�� ���2������ �'(� 2��� OL;AD� �k �^���+������2%��3�����( �'(�!��!�#?��$��/�+�&���."?���+������2%������� ���.�?3� �����+����'�7�+2� ��� �1������2��/���� �Lg=W� ]=<� �'(�!� �+�&���."?�� OL;AD� ���� �^�&���."$1(7���2����+����#��","�"� � * �'(�?��$��/�+��1����( ��.+��'�7�+��51$1(�/�+��1�r������.+� ��'�� ��51 ��(�����#//-� �� ���� $1(!$�2�� &� �#//� OL;AD� 2� �1"��05#� ���
Address (showing bit positions)
20 10
Byteıoffset
Valid Tag DataIndex
0
1
2
1021
1022
1023
Tag
Index
Hit Data
20 32
31 30 13 12 11 2 1 0
2�����2#�/�+��#//� OL;AD� � �"+���1� sg>;j� &��� q� sF<D� !"#�1� OL;AD� $�� �������Uq� sg>;j� !"#������2��/�+�&���."$1(��� �����.+?�� OL;AD� ��'�7�+$%��7��������2� }LZ&� �%��!��+ &���."$1(��� ����+����/�}LZ�&� �OL;AD�?��%��!��+ $1(�.��YLQQDW�����c:WD|����� ����!"#��Lg=W�s=<� �^����( !� �+�&���."$1(��� �����.+?��OL;AD�*��'��C=<���(� � -
������������������ ������������������� ��������������������� ����vv���
���������������� ������������� �� ��������������
���2���1�� �� �1�����#�4���?�����2����&���."?��#//� OL;AD� �1���!/+ � sg>;j� $1("# �1����&������a���"������dQL<=Lg�B>;Lg=<F�$%��?���OL;AD���eD;>MW��1��"���sg>;j�)�( 31���sg>;j�c:WD|�� ���
Address (showing bit positions)
16 12 Byteıoffset
V Tag Data
Hit Data
16 32
4Kıentries
16 bits 128 bits
Mux
32 32 32
2
32
Block offsetIndex
Tag
31 16 15 4 32 1 0
�� ��<:��B������� C=<� ���������� ��51$1(&���."�%��!��+ $1(��+����#��","��� ���?3� ����.+?�
OL;AD��+������Y=EE������ �k2#�1���������� &�����/�C=<� �'�� &���."�%��!��+ $1(��+����#��","��� ���?3� ��7�+��.+���?��OL;AD�)�( ��#��$_����&� �OL;AD�$1(1����&���."�+��?�l+���2#C=<� ��.+���?��OL;AD���+� 7��k�������C=<� !"#�����Y=EE��%�����/����+��!"#��� &1��&���."������#//2�����OL;AD���_1���2����?��.�!//$1(!���+� ������7�� �1�
Y������ ������ �����C=<�&���."?��OL;AD�?���51$1(��+����#��","��� ����+��&���."�
)�( ��( $1(��+����#��","�"� 2#$%���k�'�����+��&���."2���OL;AD�7�?3���#��","Y����B���
������ �����Y=EE�&���."$1(��+����#��","��� ����+���*7�+�/?��OL;AD-�)�( ��( $1(��+����#��","��� $%���'����� ��4�� �'(�?���#//2�����OL;AD�$%������ &���."2����+������2%���"�� &���.+�OL;AD��+���)�( �"���+����#��","��� ��4���1� �1���+�
������������������ ������������������� ��������������������� ����v����
���������������� ������������� �� ��������������
Y=EE� KD:Lg<FI� 2������ �'(��#//2����� OL;AD� �%��&���."2����+������2%���"�� &���� �k/?��OL;AD� �1�/����!"���2� %�� ������������� ��'���eDLW�C=<��+�7�k�� ����
������ �����C=<�&���."$1(��+����#��","��� ��� &1��?��OL;AD�)�( �1!��$� ?�����x�/���7�� U�"��05#� *$�� �1�&�����.+��/,.����!//-��'���M=<D�sL;j� ���� &1��&���."" ���?�� OL;AD� $+������ !"#� ���� �M=<D� }AM>9ZA� �'���� &1��&���."" ���?�OL;AD� !"#� ��+������2%���"�������6� ���� )�( $�� � U� !��$� �1��k2#�1&��1&�� �1��+� �����"+���'���M=<D�sL;j�����2#$%�� ��7� �k���+� ���#2# &1��&���."$1(��� ���" ?��OL;AD $+������!�+�1&�� �1��'��2#�13+� 2� ��#���( $1(&���."?��OL;AD�2#7�+�� ��/&���."?���+������2%���"��� !"# �'(���� �%��&���."?�� sg>;j� �������2��� OL;AD� 2� 2#$%����� &1��&���."� �"+���'�7��� ��+������2%���"��� �%�����/��51&� ���� �M=<D� }AM>9ZA� ������+����#��","�"� 2#?3� �"�?����$%�� �������+��'�� 2#��� �1��� &1��&���."" $�� ?�OL;AD� � !"#��+������2%���"��)�( 2#7�+�13+� �"�$1(&���."?���+������2%���"���1�+�7�+�� ��/�+�&� &���."?��OL;AD����"��05#� �"+����#//��M=<D�sL;j�2� 7�+ ���#$1(2#?3� ��/��#//$1(��+����#��","�"� �"�����k�� ��B���
������ � ����Y=EE� &���."$1(��+����#��","��� ��� &1��?��OL;AD� )�( ��+����#��","�"� 2#��� ��4��� *Y=EE� KD:Lg<F-� �'(�?���#//2����� OL;AD� �%��&���."2����+������2%���"�� &���� �k/?�� OL;AD� �+��� 2������2� $%�������#��","?�"��05# 1�������/�����M=<D�C=<�&�� ����+�7�
��� !�"!#$%&'�����D����2��"��05#���$%�� ��&� � OL;AD� � �"+�� ��2#�/�+�"��05#&� � OL;AD� $1(�1��#
��$_����������'��OL;AD�$1(�1�#//���2����)�( $%��?���Y=EE�eL<=>��1�+������!"#� �"�$1(��� ��4 �'(�?���#//2����� OL;AD� �%��&���."2����+������2%���"�� &�����.+� OL;AD� *Y=EE� KD:Lg<F-� �1�+�����$1(�4� )�( 2��"��05#� �"+��$%��?�� �"�$1(?3�?������#��","&� ��+����#��","�"� �����1����������_���/ �"�$1(��� ��4�� �'(�?���#//2����� OL;AD� $%�� ��� � !� 7�� ������+�7��1�
D|D;9<=>:�<=PD�{�*D|D;9<=>:�;F;gDE�t�E<Lgg�;F;gDE-���;F;gD�<=PDE<Lgg�;F;gDE�{���>\�=:E<M9;<=>:E���P=EE�ML<=>���P=EE�QD:Lg<F
������������������ ������������������� ��������������������� ����v����
���������������� ������������� �� ��������������
$�� �1�?��"� ��1�/ $1�/������ �"+����/�����$1(�/?�/$$1(� U� �'(��� !//,�� ,��2#�/�+�� V|D;9<=>:� }=PD� ?���51$1(�1� OL;AD� ����2#�����+�� V|D;9<=>:� }=PD� ?���51$1(7�+�1OL;AD� ���#2#�1� d<Lgg� OF;gDE� ��(�&������ )�( ?����� �^�2�� ��������1� OL;AD� 3+��?��� OF;gD�}=PD��1�+�����" �*��+����#��","�"� ������$%�� ��7�$1(�Og>;j�eL<D�$1(�. &���� ���# �"�$1(?3�?������&���."2����+������2%������" -
2�������&�� ����/�+�� ������/��4 ��#��$_����&� �#//� OL;AD� ����������$%��7�����"�d<Lgg�OF;gDE�&� �OL;AD�?������" )�( ���"�d<Lgg�OF;gDE������������$%��7�����"�Y=EE�eL<=>�!"#�"�Y=EE�KD:Lg<F����!��$� �+�7��1�
4�:7�B����Y� �����"� Y=EE� eL<=>� ����� �'����$%��?��&���."$1(��+����#��","��� ���?3�� �1
����$1(2#�.��/?��OL;AD� ���$1(�4� $�� �1���22�����( �'�����%����?��� OL;AD� �1&��&� � sg>;j� d=�D� $1( ���#��� )�( 2�����$��/�/�+�� 2#�1�+�$1( ���#����.+�+����( 6��%�����/��+����#��","�"� !�+"#����$�� �1�����sg>;j�d=�D��1&��?�l+ ���7��?�/� ��51� OL;AD� ��22#�1� Y=EE� eL<=>� ���&����k7�� *� !� ?����� -� �%�����/��51&� ��+����#��","�"� �YcKd��1���+�$1( ���#���'��vq[s
1 KBı
8 KBı
16 KBı
64 KBı
256 KB
256
40%
35%
30%
25%
20%
15%
10%
5%
0%
Mis
s ra
te
64164
Block size (bytes)
ProgramBlock size in
wordsInstruction miss rate
Data miss rate
Effective combined miss rate
gcc 1 6.1% 2.1% 5.4%4 2.0% 1.7% 1.9%
spice 1 1.2% 1.3% 1.2%4 0.3% 0.6% 0.4%
������������������ ������������������� ��������������������� ����v����
���������������� ������������� �� ��������������
� �������"�+�&� � Y=EE� eL<=>� $1(1$1(�4�'���� "'��?3��#//2����� OL;AD� $1( ���#��� /'�� ������� ��7�a��0��� �#//���2�����OL;AD�!//�H=MD;<�YLQQDW�!"���)�( ���2�����OL;AD�!//�H=MD;<�YLQQDW�������2 �1��7��+� �̂����2����!//��:D��LF�ED<�LEE>;=L<=TD���'�����%����?��� ���%��&� &���."?���+������2%���"�������1$1(��.+?��OL;AD� 7� �1� � ��$1(� )�( 2�����$��/�/�+��1����$1(2# ���Y=EE�eL<=>�$1(�. ��+�����%����?��� �� �%��!��+ &� ��+������2%���"���1$1(��.+?�� OL;AD� �����+�� �� $1(� 3+��}�>��LF� ED<� LEE>;=L<=TDG� 8>9M��LF� ED<� LEE>;=L<=TDG� ��'�� �#//� V=ZA<��LF� ED<�LEE>;=L<=TD�*89ggF�JEE>;=L<=TD-
Tag Data Tag Data Tag Data Tag Data Tag Data Tag Data Tag Data Tag Data
Eight-way set associative (fully associative)
Tag Data Tag Data Tag Data Tag Data
Four-way set associative
Set
0
1
Tag Data
One-way set associativeı(direct mapped)
Block
0
7
1
2
3
4
5
6
Tag Data
Two-way set associative
Set
0
1
2
3
Tag Data
��+� 7��k����!���+��#//���2����� !//�1� JEE>;=L<=TD��LF������+�� �� $� 2#3+��"�Y=EE�eL<=>�7�1�!�+���2�����#//�OL;AD� �'(����2��/����C=<�!"#�Y=EE��k�4+ ���&���7�r��� ���2#!� ���$%�� ��&� �#//� OL;AD� ?�!//� 8>9M��LF� ED<�LEE>;=L<=TD�)�( 2#�1"��05#�"�����/�H=MD;<�YLQQDW�q�����+�&�������������2��/����C=<�������� ��1�/ $1�/�}LZ���/$�� �q�sg>;j�!"#� �'(��1����C=<�!"����k2#��� ,+��Y9g<=QgD|� �'(� "'��&���."$1(��� ��������?3�� ?���51$1(��� ����%��&���."���2��OL;AD������,.����!//�������?3�� BDLE<�eD;D:<�hED� *Beh-�JgZ>M=<AP��'� "'��&���."?��%��!��+ $1(�.�?3� ������$1(�4���2���OL;AD
������������������ ������������������� ��������������������� ���������
���������������� ������������� �� ��������������
22 8
V TagIndex
012
253254255
Data V Tag Data V Tag Data V Tag Data
3222
4-to-1 multiplexor
Hit Data
123891011123031 0
2�����$��/�/�+����� ��(��JEE>;=L<=TD��LF�3+��?���Y=EE�eL<D��1�+�"" ?�"��05# �'�/2# �^� 3� ����*� !� 7�� ���-
0%
3%
6%
9%
12%
15%
Eight-wayFour-wayTwo-wayOne-way
1 KBı
2 KBı
4 KBı
8 KB
Mis
s ra
te
Associativity 16 KBı
32 KBı
64 KBı
128 KB
������������������ ������������������� ��������������������� ���������
���������������� ������������� �� ��������������
4�:7�B����_���G @���"� Y=EE� KD:Lg<F� �����'����$%��?��������+��&���."�#��+� � OL;AD� !"#�
��+������2%���"����������#$%��7���+� �� �k�� )�( �"�����$1(1$1(�4?����"� Y=EE�KD:Lg<F��'�������� �OL;AD� �'(��� ��/���$%�� ���"��6� �#�/� *Y9g<=�BDTDg�OL;AD-�� �'(�� ��+����#��","�"� ��� �����&���."����� ����Y=EE� ?��#�/!����22#��� �1�� Y=EE� KD:Lg<F� �� � ��� OF;gD� �'(�� &���."2����+������2%���"��� !�+����1�#//OL;AD� �"���#�/� �'(�7�+�/&���."?��#�/!��� *Y=EE-� ��22#�/&���."?�� OL;AD��#�/��7��k7��$%��?���#//7�+2%�� �^�2#��� �1��Y=EE�KD:Lg<F��� ����OF;gD�$4����� $1(�1����Y=EE� ��&��������� ���#��12#�/�+�����"�Y=EE�KD:Lg<F�����$%���Y9g<=�BDTDgOL;AD� ����� �'����������$%��?3�&���."/� �+�����������/?3� ��7� �k�&���� �17� �̂����"�+���� "&���
2�����$��/�/�+�� ��� ��'(� ������ �����#//���( )�( �1� OL;AD� $%�� ��$1(���� �k��U�:E�!"#���+������2%���"��$%�� ��$1(�U���:E�!"������ ��(��OL;AD��1��#�/���( )�( �1���� �k��U��:E�!$�� &��7��2#3+��"�+��Y=EE�eL<D�2���u�� �̂��U��7�
CPU
Level n
Level 2
Level 1
Levels in theımemory hierarchy
Increasing distance ıfrom the CPU in ı
access time
Size of the memory at each level
BDTDg������� �k��U�:EBDTDg�U����� �k��U��:EBDTDg������� �k��U���:E
6�� �� ��I(����������[0-,.GH�A3E1-J
��+������2%�� ��'������� �̂���+������2%��$1(7�+��.+2�� ?��#// ��'(� ������ ����� ���!�+ �^� �1� ��+������2%��$1(?3���� �� �)�m�n!���$�� 7�������+� &� �#//��+������2%�� ��'��$1(�/7� +��$1(�4�'�����$1(��!���)�( ��� ���?3���+������2%�� �̂�2%���������������$%�� ��7�/� ��'(� $1(�1��+������2%���%(��6� 7�� * 3+�� ��!���$1(��� �����+������2%��� q�� Y]� �#��+� �����#��","� ��22#$%�� ��7�/� ��'(� $1(�1��+������2%���"�� �1� � �v� Y]� �^����-� ����$%�� ��� �"+������� ��������#$%��7� �'(� 2����+������2%���"��$%������$1(�"�����/�OL;AD� &� ��+������2%��$�� ��$1(��!������ ���� !"#&���."$�� ��&� ��!���2#�.� �k/7��?���+������2%���%���� &��?�l+� )�( $%������$1( �̂�� d�LQ� dQL;D� *�$�(�7���� �̂�p�������-� � !� 7�� �������)����'���=M<9Lg�YDP>MF����&���'�� KAFE=;Lg�YDP>MF� !"#��1�H=Ej�JWWMDEE�
������������������ ������������������� ��������������������� �����U���
���������������� ������������� �� ��������������
�'(�$%������$1( �^�� d�LQ� dQL;D� *2#�� ��7��+�� �=M<9Lg�YDP>MF� 2#�1&��?�l+��+�� KAFE=;Lg�YDP>MF�)�( /� �+��2# �k/��.+?��KAFE=;Lg�YDP>MF�!"#�/� �+��2# �k/��.+?��H=Ej-
Physical addresses
Disk addresses
Virtual addresses
Address translation
?������&���."&� �#//������ ����$1(�1��+������2%�� ��'������� ��2#�%�� "&� �=M<9Lg�KLZD��9P]DM��������?����� ��KLZD�}L]gD�)�( �̂����� $1(?3�?����!�" ��=M<9Lg�JWWMDEE?�� �̂��KAFE=;Lg�JWWMDEE������ �1�2#�12%������eD;>MW*E-� $+���/2%�������=M<9Lg�KLZD�!"#!�+"#�eD;>MW�2#2� �k/��%��!��+ $1(31�7��� �KAFE=;Lg�YDP>MF��$1(�KAFE=;Lg�YDP>MF�!"#�1�1���s=<� *�Lg=W-�$1(2#?3�/���+�&���."$1(��� �������� �k/��.+?���+������2%���KAFE=;Lg�YDP>MF���'����� �̂�� d�LQ� ��.+?��H=Ej�d<>MLZDI� )�( �%��!��+ &� �eD;>MW�$1( �k/� KAFE=;Lg� KLZD��9P]DM&� ��=M<9Lg�KLZD� ����� �������2#$��/7�2�� "&��=M<9Lg�KLZD��9P]DMI
Physical memory
Disk storage
Valid
1
1
1
1
0
1
1
0
1
1
0
1
Page table
Virtual pageınumber
Physical page orıdisk address
�&������?�����%��&���." &��!"#����#��+� ��+������2%��� KAFE=;Lg� YDP>MF� !"#�H=Ej� d<>MLZD� ����� 2#�.�2�����)�m�n!����#//� ��'�� �#//�x�/������$�� �1� �'(� 2������
������������������ ������������������� ��������������������� ���������
���������������� ������������� �� ��������������
��� ���?����?3���+������2%��&� !�+"#�#//�1����!���+� ���� ��+����#��","�"� 2� �1 �1� �2�� ������ a0�$1(2#31�7��� ��+������2%���%��!��+ $1( �k/���� �KLZD�}L]gD�!"#� 2�)�( 2#$%������$1(���2��/�+�&���."$1(��� �����.+?���+������2%���"��� *KAFE=;Lg�YDP>MF-� ��'�7�+� !"#��51$1( ���KLZD�8L9g<�*&���."$1(��� �����7���.+?���+������2%���"��-���+����#��","�"� 2#���� ��ll�5� c:<DMM9Q<� �'(�?��)�m�n!���$%�� ���+�7�� *���"# �1� ��(� ���������a��0�7�2����3��#//�x�/��������QDML<=:Z�dFE<DP-
Page offsetVirtual page number
Virtual address
Page offsetPhysical page number
Physical address
Physical page numberValid
If 0 then page is notıpresent in memory
Page table register
Page table
20 12
18
31 30 29 28 27 15 14 13 12 11 10 9 8 3 2 1 0
29 28 27 15 14 13 12 11 10 9 8 3 2 1 0
����� ���� &� �#//��=M<9Lg�JWWMDEE�!"#�KAFE=;Lg� �^�� ���&�� ���� ��2#�/�+�KLZD�}L]gD�����2#�12%������eD;>MW*E-�$�� �����U��������eD;>MWE�* �'(� 2����=M<9Lg�KLZD��9P]DM�/������s=<�$1(��U����&� ��=M<9Lg�JWWMDEE-�!"#�!�+"#�eD;>MW�����2#��#��/����*U����-t��s=<� ��'�� ��#��5� �� sF<D� * �'(� 2��� KAFE=;Lg� KLZD� �9P]DM� /������ s=<� $1(� �U�U�� &� KAFE=;Lg�JWWMDEE�!"#!�+"#�eD;>MW�2#��� �k/��Lg=W�s=<�)�( ?3�/���+�&���."��.+?���+������2%���"�����'����.+?��d�LQ�dQL;D�)�( �'(�!�" &���." �̂���+���sF<D�2#��� $%������� a0&��� �'(�?�� �̂�2%����� �k� $+�����-� � ���?���51� �"+���1�� KLZD� }L]gD� 2#�1&��?�l+�� � ��U��� sF<D���'���#��5���Y]�!"# �'(� 2���KLZD�}L]gD��1��k�.� �k/7��?���+������2%���"�� 3+������ ���� �'(�?�����!�" "&��=M<9Lg�KLZD��9P]DM�7� �̂��KAFE=;Lg�KLZD��9P]DM���������#$%��7�
������������������ ������������������� ��������������������� �����q���
���������������� ������������� �� ��������������
�� �k���( &���� 2� 7��1�����#�4���?3��#//� OL;AD� ��/� KLZD� }L]gD� 3+����� *}Bs� OL;AD-� � � !� 7�� ���
Valid
1
1
1
1
0
1
1
0
1
1
0
1
Page table
Physical pageıaddressValid
TLB
1
1
1
1
0
1
TagVirtual pageı
number
Physical pageıor disk address
Physical memory
Disk storage
�'(��#//� �=M<9Lg� YDP>MF� !"#�#//� OL;AD� ����$%�� ����������$�� �����?���+����#��","�"� ��k2#$%��?��&������?������#��","&���."2��&� ��+����#��","�"� ����)�/)�����( &����� ��(���� !�+��+����#��","�"� 7���/��=M<9Lg�JWWMDEE�2��)�m�n!�����k2#$%�����!�" &���."?�� �̂��KAFE=;Lg�JWWMDEE� ������2��� KLZD� }L]gD� )�( ���������1�2# ��(����2��OL;AD�&� �}ML:EgL<=>:�}L]gD��+������7�+�/�k2#$%������ &���."2���KLZD�}L]gD��%��!��+ $1(��� ��� &����7��?��OL;AD�&� �}ML:EgL<=>:�}L]gD� �'(�7��KAFE=;Lg�JWWMDEE�!"������&���."$1(��� ���7�+��.+���?��KAFE=;Lg�YDP>MF��k2#���� ��ll�5�KLZD�8L9g<� �'(�?��)�m�n!����#//�x�/������2����� &���." &����7��?��KAFE=;Lg�YDP>MF��+�7�� �'(�7��KAFE=;Lg�JWWMDEE�)�( ��.+?�� KAFE=;Lg� YDP>MF� !"��� ��+����#��","�"� 2#�����&���."�%��!��+ � �"+��?�� OL;AD&� &���."� !"#$%�����&������&� ���� �M=<D� C=<� ��'�� eDLW� C=<� �+�7�� $�� �1�&�����.+��/�+��%����( $1(��#��","���� �̂�����+����'� &1��&���."��+����51����Y=EE�������#//2�����OL;AD�&���."2#$%������d<Lgg�OKh�!"��� &���."2����+������2%���"�� &���� �k/?��OL;AD� �'(���#��","���&�������+�7��"%���/?����$%�� ��� �"+���������2!� 7�� !,�����+�7��1�
������������������ ������������������� ��������������������� �����u���
���������������� ������������� �� ��������������
Yes
Deliver dataıto the CPU
Write?
Try to read dataıfrom cache
Write data into cache,ıupdate the tag, and putı
the data and the addressıinto the write buffer
Cache hit?Cache miss stall
TLB hit?
TLB access
Virtual address
TLB missıexception
No
YesNo
YesNo
Write accessıbit on?
ı
YesNo
Write protectionıexception
Physical address
��&�
�#//� �=M<9Lg� YDP>MF� !"#� �#//� OL;AD� �^��#//$1(3+�� ������#��$_�&� ��+����#��","�"� ?����$%�� ��$1( �1(��&�� ��/��+������2%��� ��#//� OL;AD� 2#3+���%����������#��?����+����#��","�"� �������+��&���."2����+������2%���"��7� �k�&���� )�( ,"$1(7��'���+����#��","�"� 2#������$%�� ��7�$1(� Og>;j� eL<D� $1(�. &���� ���#7�+��� �����$%�� ��&� ��+������2%��� ��+� 7��k�����#��$_����&� �#//����2#1��'�7�+&�����.+�+�� Y=EE�eL<=>� ��/� �+��Y=EE� KD:Lg<F� ���� �%�����/�#//��=M<9Lg� ����3+��?����!��� ������������̀ ��)�m�n!���7� �^�����#�7�+��� ��?2�#//��+������2%��&� ��'(� ����6� !"#�� ?��)�m�n!���$1(��� �����+�������. �������$%�� ��/� ��'(� $1(�1��+������2%���"������6�7�
������������������ ������������������� ��������������������� �����v���
���������������� ������������� �� ��������������
"89�6�':���:
�I� �"�����&� �B>;Lg=<F�3+��?����+����#��","�"� ������$%�� �� �k�&���7���+� 7�UI� ���$+�� �̂�,.����!//�OL;AD� $+��2#�1�"�� �5����+� 7�?���� "'��?3��#//��M=<D� sL;j
!"#��M=<D�}AM>9ZAI�I� �1��22��?/�� $1(�1,"�+���#��$_����&� � OL;AD� !"# �����������/��4 ��#��$_����&�
OL;AD�7���+� 7�/�� 2 �_�/��qI ��!���$��/������( �134�%����( $�� �����U�"����%����( �����Y=EE�eL<D� �^�������!"#�Y=EE�
KD:Lg<F� �^��v�OF;gD������+����#��","�"� � �"+���1�OKc� �̂�� ��!"#�1�Og>;j�eL<D �^�� U��� YA�� 2 !� ����%����5�� �"�?������#��","��!���$��/&� ��+����#��","�"� � �"+��
uI ����1�#//��=M<9Lg�YDP>MF����� �^���#�3���%�����/,.���̀ ��)�m�n!�����'�7�+���+� 7�
������������������ ������������������� ��������������������� ���������
���������������� ������������� �� ��������������
������P�4�+5g�&),0&&6�4�=-,0'l�+%W4.�9�0*/���)*:;:4:'
?���� 3'(���+��4���5��+� 6� &����/��+����#��","�"� ����� �1�"���"��!��$� $1(��������#$%��7�� $�� �1���22��$1(2#?3� �^�����%�����+���� 3'(���+�2# "'��?3�����b��?� �'������ �k�&� �4���5�� "��05#&� ��+����#��","�"� � !"#� ����#!�"���&� �#//$1(�4���5� �"+������+��+� ��.+� �'����?�/$�1�2#�"+�� �1� !��$� ?���� 3'(���+��4���5��+� 6$� ���p���!���!"#)�m�n!����*��'�$1( �����2#�4�� ��?�"��05#&� �HDT=;D�HM=TDM-
������%������&���T�:��'���\���'" ��
?���� 3'(���+��4���5� &����/��+����#��","�"� ����� ��+����#��","�"� /� ��#�."2#�+��4���5� �"+����� &����/� YDP>MF� s9E� !"���� ��'�����( �+����$%�� ����/�4���5� �"+����� �^����$%�� ����/��+������2%���������� ��#//p���!���2#$%������ BL<;A� �+� &1�����7��!"#��+���+��4���5�2����+������2%���%��!��+ $1(�%����7��� �+��4���5� �"+������)�( �"������1� �� �1���+��YDP>MF�YLQQDW�c���� !� 7�� ���
����m&n,o<*�-d����NJXG�ys���Az
����p�-7<*�-
������������0��NJX�$1(2����
)�( �#//�YDP>MF�YLQQDW� c����1� �^�$1(����?��#//������ �����4�!��6�!�+ �'(� 2���#//��+������2%�������1"��05#!���+� 2���#//� c��� � ����� 2� 7��1���!�����2�����#//��+������2%�����2���#//����+��+� �4���5��+� 6� * �'(� 2����+������2%�������1���� ���#��$1(2#$%�� �̂��#//�OL;AD�?�&5#$1(�#//�c�������7�+��� ����OL;AD-�� ����2� �� �̂�!��$� ?���� 3'(���+���+����#��","�"� ,+���#//� c��� s9E� dFE<DP� !"#� �'(����������/��� 2� �1���JWWMDEE�$1(�4���5��+��+� ��.+�+��K>M<�!$�
��+� 7��k���� ?�/� ��51�����4���5��+��+� ��22#$%�� �� �k����� ?�&5#$1(��+����#��","�"� ��22#$%�� ���)�( ������+��&���.",+���#//� c������a����+����#��","�"� ���22#$%��7�"+�3������ ��4�1�2 �+ ,"?�� ���#//�H=MD;<�YDP>MF�J;;DEE�*HYJ-� �'(�?3�?�������+��&���."�#��+� ��+������2%���"��!"#�4���5��+��+� ��� � 7�+��� ,+����+����#��","�"� � *�4���5�)�( $%�� ��$1(���� �k��. ��+���+����#��","�"� ���6� ���� 3'(���+�
������������������ ������������������� ��������������������� ���������
���������������� ������������� �� ��������������
,+���#//�1�-� ��+� 7��k������ 3'(���+�?�"��05#�1�2#��� �1���$%�� ��&� � HYJ� O>:<M>ggDMh:=<� &����3+��?������#��","���
?���51$1(�4���5��+��+� ��.+/��#//�����ll�5$1(�1����b��!���+� 2��� �#//� s9E��&� ��+����#��","�"� ����� ��� 3'(���+��#��+� �4���5��+��+� !"#��+����#��","�"� 2#�1��+����#��","�� a0 �^������#���)�( �����2# �1����+����#��","�� a0 �"+��1��+�sM=WZD���'��O>:<M>ggDM� 3+���4���5��+��+� $1(��.+/�����b��&� �#//�dOdc������ 7�+������$1(2#�+��+� &����/��+����#��","�"� 7���� � ����+��+� 2#��� ��#$%��,+��� dOdc�O>:<M>ggDM� �^����� ��� ��4�1�����+� 3'(���4���5��$�(�7�� 2� �����#$%��,+��� O>:<M>ggDM� �+�� ����*� !� 7�� ���-
Mainımemory
I/Oıcontroller
I/Oıcontroller
I/Oıcontroller
Disk Graphicsıoutput
Network
Memory– I/O bus
Processor
Cache
Interrupts
Disk
2�����2#�/�+�� c���O>:<M>ggDM�/� ��# �$����2#�+� �+���/�4���5�7������+�� ��3����!"#�"��6� ��51�4���5� �"+������k�1����!���+� ������?�! +&� ���� �k�� )�( ����'(�����#��+� �4���5�!"#�O>:<M>ggDM�$1(�1���� �k�!���+� ����1��"����51$1(�4���5�!"#�O>:<M>ggDM���7�$%�� ��$1(��ll�5������ 1������ *JEF:;AM>:>9E-� � ����2� ��� �1����%������ll�5CL:W� dALj=:Z� ��'�� KM><>;>g� �'(� �^�����b��?������" �����/�+ &���."�#��+� �4���5� �"+��1�� �����+� �#//� CLMW� dALj=:Z� $1(3� 2�$1(�4�'�����'(�����#��+� ��'(� ������ *KM=:<DM-!"#� ��'(� ������ ����� )�( 7�+�+� ��'(� ������ ����2#$%�� �� �k� �1� ?� �k�� ������2#�'(����&���."��/ ��'(� ������#// �+�$1($%�� ��3��7� ���
������������������ ������������������� ��������������������� ���������
���������������� ������������� �� ��������������
DataRdy
Ack
Data
ReadReq 13
4
57
642 2
�#//��ll�5� CL:W� dALj=:Z� �$�(�7������ 2#��#��/��������ll�5� eDf9DE<�!"#�J;j:>�gDWZD��.+��� ���$�� �1�� �������'(�����#��+� �4���5�!"#�O>:<M>ggDM� �^�"��05#�dF:;AM>:>9E� ����������2��/���������&� &���."2#$%��7�����.$1(��ll�5������ �̂��"��� *���"# �1� ��(� ���&� ����� ���#����#��$_����&� �#//� dF:;AM>:>9E� !"#�JEF:;AM>:>9E���������������+��7�2����� �'��O>PQ9<DM�JM;A=<D;<9MD
#��]T�$���������YY�T��^.+�4-_0,-G,01*
• HL=EF�OAL=:�JM]=<ML<=>:��'������+��4���5�?�"��05#$1(�+� ���7� �'(��6�* 3+����51&� �hds�s9E-�)�( &�� �1�&� �s9E�?��#//�1��'�� �'(��1�4���5��+��+� �������� �k�?�����'(�����k2# o"1(�6����7�?�� $+�6����
• OD:<MLg=�DW� JM]=<ML<=>:� �'�� ����+��4���5�!//��������ll�5 &��������� * 3+����51&� �KOc���'��cdJ�s9E-
• dDg\�EDgD;<=>:� �^��#//�s9E�$1($1(����?3�/� ��'(� �YL;=:<>EA�*�9s9E-
• O>gg=E=>:� HD<D;<=>:� �̂�� s9E� $1(�1"��05#�� a0�'��1����'(������1,.���/,.��+ 7�����������* 3+���#//�s9E�&� ��#// ��'�&+�������� ����-
���I�'����&���T�:��'���`�a�b" ��
• K>gg=:Z� ���� �^��#//���2�����4���5��+��+� ����#�+��?�l+� ��.+$1(��+����#��","�"� �^��"��� ���+����#��","�"� ����2#��� �����/����4���5���.+ ����+�� �4���5��1&���."$1(��� �.���#��","��'�7�+� 3+�� ��+����#��","�"� ��� ����+��&���."�CLMW�H=Ej� �'(���+����#��","�"� ��( ?���CLMW�H=Ej�$%������+��&���."!"��� ��+����#��","�"� 2#��� ������2��/ ����+�� CLMW�H=Ej������+��&���." ��k2��'��� � ���+����#��","�"� 2#7�+��������#��"," ����+� �'(�7�)�( &�� �1�&� �#//�1��'��2#$���������+����#��","2%��������
• c:<DMM9Q<� ����� �4���5�2#!2� ?����+����#��","�"� � $��/�+�&���."$1(��+����#��","�"� ��� ������������!"��� 3+�� ��51����+��&���."2��� CLMWW=Ej� �'(���+����#��","�"� ��( ?��� CLMW� H=Ej� $%������+��&���."� �#��+� $1(�%��"� ��?��
������������������ ������������������� ��������������������� ���������
���������������� ������������� �� ��������������
��+��� CLMW� H=Ej� ��#��"," �'(�?��7�&���."�."����� ��+����#��","�"� �k������$1(2#7�$%�� ����+� �'(�7��)�( �'(��CLMW�H=Ej��#��"," ��k2��k2#$%�����!2� ?����+����#��","�"� $��/,+���#//�c:<DMM9Q<��&���?��������c:<DMM9Q<��������+����#��","�"� 2#$%���������%����( $1(��� ���7��?�� d<L;j� �+��� !"��2� ������ � c:<DMM9Q<� �D;<>M� �'(�$%�� ��� c:<DMM9Q<� e>9<=:D� �%�����/ ������6� � &�� �1�&� �#//�1��'����� &1��)�m�n!���/��#//�c:<DMM9Q<�������1����)�/)����4+ ���
• HYJ� �^��#//��#��","$1(?3���/��� 3'(���+�p���!���$1( �^��#//� HYJ� ���+��)�m�n!��� �'(�7���/��ll�5��� &����$%���HYJ�2���4���5��+��+� � 2#��( ?����+����#��","�"� "��?3� ����+������2%��� �^����3�(������ 2������ �'(��4���5�$%������'(����&���."��/��+������2%�� ��k2!"��� 2� ��( ?����+����#��","�"� $%�� ���+�
$�� �1� �'(� ��1�/ $1�/�#��+� �#//� K>gg=:Z� !"#� �#//� c:<DMM9Q<� !"��� ��2#�/�+����K>gg=:Z� ���� ���#��/�����#��","?�"��05#$1(��+����#��","�"� ��� $%�� �� o��# 2�#2 �̂���#2%����+���#//� c:<DMM9Q<� ���#��/�#//$1($%�� ��?�"��05#�}=PD� dALM=:Z���'���+����#��","�"� ��� ��#��"," ���"��6���+� ?� �"� 1�����
��&�
?�������!//�#// �'(� 3'(���+��4���5� &����/��+����#��","�"� ����� �1��22��$1(��� a��0�������� 3+�� ���� �k�?�����'(����&���."� 2%������4���5�$1(�������+��+� 7�� �������&� �����ll�5$1(?3� 3'(���+�� ����� !"#��#��$_������51$1(�1�4���5��+��+� �̂�2%��������� )�( &���."$1(�"+���� ���?�/$�1� �̂� �1� ���"# �1� /'�� ��� �'(� �̂��'��b��?����a��0��+�7� $+�����
������������������ ������������������� ��������������������� ���������
���������������� ������������� �� ��������������
"89�6�':���:
�I ���$+�� �^�,.���̀ ��)�m�n!����%�����/�'(������/�4���5�3������( �$+��2# "'�� &1��)�m�n!����?3��#//�K>gg=:Z���'���#//�c:<DMM9Q<� ���# ��4?
UI �4���5���# �$?/�� � $1(�1"��05#����'(������/�#//������ ����� ?�"��05#JEF:;AM>:>9E�!"# ���# ��4?2� �^� 3+�����
�I ���!���#//� c��� ���2���#//��+������2%�� �^���#�3��?������`���4���5������� ������'�7�+���+� 7�
qI ���$+�� �^�,.���`���4���5� 3'(��� $+���1�"�� �5����+� 7�?���� "'��?3��#//� YDP>MFYLQQDW�c���G��#//�c���s9E���'���#//�HYJ�2 �_�/��
������������������ ������������������� ��������������������� �����U���
���������������� ������������� �� ��������������
������q� 2�3,/4��)(&)$!*+,&�- )./\9)0�<:� 2�3,/4��)<��%��
Cache
Processor
Cache
Processor
Cache
Processor
Single bus
Memory I/O
Network
Cache
Processor
Cache
Processor
Cache
Processor
Memory Memory Memory
Cache tagıand data
Processor
Single bus
Memory I/O
Snoopıtag
Cache tagıand data
Processor
Snoopıtag
Cache tagıand data
Processor
Snoopıtag
"89�6�':���:
������������������ ������������������� ��������������������� ���������
���������������� ������������� �� ��������������
+&4 �&W'&!'