Buscar

Relatório PC1

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 15 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 15 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 15 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

UNIVERSIDADE FEDERAL DO ESTADO DE SÃO PAULO
BRUNO HIDEKI AMADEU OGATA
Determinação do Conjunto de Instruções e Arquitetura Base
São José dos Campos
2021
BRUNO HIDEKI AMADEU OGATA
RA: 140884
Determinação do Conjunto de Instruções e Arquitetura Base
Relatório apresentado ao curso: Laboratório de Sistemas Computacionais: Arquitetura e Organização de Computadores.
São José dos Campos
2021
RESUMO
	Aqui serão apresentadas as primeiras etapas no processo de implementação de um sistema digital composto por processador, memória e interface de comunicação, que são a definição do conjunto de instruções e da arquitetura base. Este projeto será desenvolvido com base na arquitetura MIPS (Microprocessor without interlocked pipeline stages).
Palavras-chaves: instruções, MIPS, caminho de dados, 
LISTA DE ILUSTRAÇÕES
Figura 1: Caminho de dados no MIPS	11
LISTA DE TABELAS
Tabela 1. Formato das instruções do MIPS	10
Tabela 2. Conjunto de instruções	12
Tabela 3. Opcode usado para cada instrução	13
SUMÁRIO
1	Introdução	7
2	Objetivos	8
2.1	Geral	8
2.2	Específicos	8
3	Fundamentação Teórica	9
3.1	Verilog	9
3.2	FPGAs	9
3.3	Arquitetura MIPS	9
3.4	Caminho de Dados	10
4	Desenvolvimento	12
4.1	Conjunto de Instruções	12
4.2	Mapeamento das Instruções	13
5	Considerações Finais	15
Referências	16
1	Introdução
	Atualmente, máquinas como computadores e celulares são muito comuns ao redor do mundo todo. Essas máquinas citadas possuem diversos componentes internos, sendo um deles o processador. 
	Para podermos observar mais de perto o funcionamento de um processador, a disciplina Laboratório de Sistemas Computacionais: Arquitetura e Organização de Computadores é essencial, pois aqui projetaremos um processador do zero, na linguagem de descrição de hardware Verilog, baseado na arquitetura MIPS.
2	Objetivos
2.1	Geral
	Implementar um sistema computacional em Verilog, composto por processador, memória e interface de comunicação.
2.2	Específicos
· Definir o conjunto de instruções;
· Fazer o mapeamento das instruções;
· Determinar o caminho de dados.
	
3	Fundamentação Teórica
3.1	Verilog
	Verilog é uma linguagem de descrição de hardware, criada por Prabhu Goel e Phil Moorby, para a empresa Automated Integrated Design Systems. É usada para implementar projetos a nível de circuito e além disso fornece maior rapidez e facilidade em sua implementação em relação à projetos em esquemático.
	É possível descarregar os códigos feitos em Verilog em FPGAs, por meio de suas placas de desenvolvimento com base em circuitos integrados.
3.2	FPGAs
	Um FPGA (field-programmable gate array) é um dispositivo lógico que suporta a implementação de circuitos digitais e é configurado de acordo com seu usuário. Suas duas principais fabricantes, atualmente, são a Altera e a Xilinx.
	No caso desse projeto será utilizado o kit FPGA DE2-115.
3.3	Arquitetura MIPS
	A arquitetura MIPS (Microprocessor Without Interlocked PipelineStages) foi desenvolvida por uma empresa chamada MIPS Technologies. Essa arquitetura utiliza apenas registradores na execução de suas instruções, o que facilita sua manipulação.
	A arquitetura MIPS possui o tamanho das instruções fixos, outra característica que facilita em seu uso. Nesse projeto serão usadas instruções com tamanho fixo de 32 bits.
	O MIPS possui três formatos de instruções, sendo eles instruções do tipo R, I e J, os quais são apresentados abaixo:
	
R
	OpCode
	RS
	RT
	RD
	Desloc
	Função
	
	6 bits
	5 bits
	5 bits
	5 bits
	5 bits
	6 bits
	
	
I
	OpCode
	RS
	RD
	Const
	
	6 bits
	5 bits
	5 bits
	16 bits
	
	
J
	OpCode
	Endereço
	
	6 bits
	26 bits
Tabela 1. Formato das instruções do MIPS
Fonte: Autor.
	Nas instruções do tipo R os registradores RS e RT são reservados para os operandos fontes da instrução e o registrador RD é reservado para armazenar o resultado da instrução. O campo OpCode diferencia qual instrução será realizada e o campo Função será definido como 0, pois nesse projeto, por enquanto, há um número reduzido de instruções.
	Para instruções do tipo I há um campo de 16 bits para um valor imediato e para as do tipo J há um campo de 26 bits reservado para o endereço.
3.4	Caminho de Dados
	O caminho dos dados é o caminho que uma instrução percorre até o termino de sua execução. O caminho de dados numa arquitetura MIPS será descrito abaixo: 
Figura 1. Caminho de dados no MIPS
Fonte: Referência (1)
	O PC (Program Counter) armazena e envia a instrução, ele é responsável por enviar a instrução para a memória de instruções e para o cálculo da próxima instrução. Na Memória de Instruções é feita a decodificação da instrução, isto é, ela determina qual instrução será executada e a manda para as próximas unidades funcionais. Em seguida, temos o campo dos Registradores, que é onde é feita a identificação dos registradores fontes, isto é, aqueles que terão seus dados lidos e o registrador destino, após isso, vamos para a ULA (Unidade Lógica e Aritmética), que é onde as operações indicas pela instrução são de fato realizadas. Temos também o campo do Sinal Estendido, que é responsável por transformar o imediato de 16 bits num sinal de 32 bits, para o caso das instruções do tipo I. A unidade funcional Memória de Dados é armazenado o resultado da ULA em casos de instruções SW (StoreWord), do tipo I. Para as demais instruções, os resultados são armazenados no campo dos Registradores.
4	Desenvolvimento
4.1	Conjunto de Instruções
	O conjunto de instruções é definido de acordo com a tabela a seguir: 
Tabela 2. Conjunto de instruções
	Instrução
	Formato
	Operação realizada
	Operações aritméticas
	ADD [RD, RS, RT]
	R
	RD <= RS + RT
	SUB [RD, RS, RT]
	R
	RD <= RS - RT
	ADDI [RD, RS, Const]
	I
	RD <= RS + Const
	SUBI [RD, RS, Const]
	I
	RD <= RS - Const
	MULT [RS, RT]
	R
	LO <= ((RS * RT) <<32 ) >>32;
HI <= (RS * RT) >>32
	DIV [RS, RT]
	R
	LO <= RS / RT;
HI = RS % RT
	Operações lógicas
	OR [RD, RS, RT]
	R
	RD <= RS or RT
	AND [RD, RS, RT]
	R
	RD <= RS and RT
	NOT [RD, RS]
	I
	RD <= not (RS)
	Transferência de dados
	LW [RD, END]
	I
	RD <= Mem_dados[END]
	SW [RD, END]
	I
	Mem_dados[END] <= RD
	Salto condicional
	BEQ [RS, RT, Const]
	I
	PC <= Const, se RS = RT
	BNQ [RS, RT, Const]
	I
	PC <= Const, se RS != RT
	Salto incondicional
	J [RS]
	J
	PC <= RS
	JI [Const]
	J
	PC <= Const
Fonte: Autor.
	Por enquanto o projeto possui um número bem reduzido de instruções, mas isso pode ser alterado no decorrer do tempo. 
4.2	Mapeamento das Instruções
	Após definir o conjunto de instruções foi feito o mapeamento das mesmas, de modo a definir um OpCode diferente para a cada uma, para que elas sejam diferenciadas na Memória de Instruções. O mapeamento é descrito na tabela abaixo:
Tabela 3. Opcode usado para cada instrução
	OpCode
	Instrução
	OpCode
	Instrução
	000000
	ADD
	001000
	NOT
	000001
	SUB
	001001
	LW
	000010
	ADDI
	001010
	SW
	000011
	SUBI
	001011
	BEQ
	000100
	MULT
	001100
	BNQ
	000101
	DIV
	001101
	J
	000110
	OR
	001111
	JI
	000111
	AND
	
	
Fonte: Autor.
5	Considerações Finais
	Ao determinar o conjunto de instruções e fazer seu mapeamento minha intenção é de facilitar a futura implementação do projeto, porém podem ocorrer imprevistos e pode ser necessárias algumas mudanças, seja no conjunto de instruções ou no caminho do dados. A implementação seguirá a ordem descrita na seção do caminho de dados, focando inicialmente na execução das instruções do tipo R, depois nas do tipo I e, por fim as do tipo J, de modo que as primeiras unidades funcionais a serem implementadas serão o PC, a Memória de Instruções, os Registradores e a ULA, nessa ordem. 
Referências
1. < https://stackoverflow.com/questions/33334521/extending-mips-datapath-to-implement-sll-and-srl> Fonte da Figura 1;
2. <https://www.embarcados.com.br/primeira-instrucao-mips/>;
3. <https://www.embarcados.com.br/arquitetura-de-conjunto-de-instrucoes-mips/>;4. Trabalho de conclusão de curso do aluno Helder Celso Romero dos Santos disponibilizado no Moodle da disciplina.

Continue navegando