~ubuntu-branches/ubuntu/vivid/drmips/vivid-backports

« back to all changes in this revision

Viewing changes to doc/manuals/manual-pt_PT.tex

  • Committer: Package Import Robot
  • Author(s): Bruno Nova
  • Date: 2014-09-27 12:24:17 UTC
  • Revision ID: package-import@ubuntu.com-20140927122417-2gadkwt9k0u7j4zu
Tags: upstream-1.2.3
Import upstream version 1.2.3

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
% Short manual that explains the end user how to use the simulator (pt_PT).
 
2
 
 
3
\documentclass[11pt,a4paper,twoside,titlepage]{article}
 
4
 
 
5
\usepackage[utf8x]{inputenc}
 
6
\usepackage[portuguese]{babel}
 
7
\usepackage[T1]{fontenc}
 
8
\usepackage{amsmath}
 
9
\usepackage{amsfonts}
 
10
\usepackage{amssymb}
 
11
\usepackage{graphicx}
 
12
\usepackage{listings}
 
13
\usepackage{hyperref}
 
14
\usepackage{color}
 
15
\usepackage{siunitx}
 
16
 
 
17
\newcommand{\Author}{Bruno Nova}
 
18
\newcommand{\Title}{DrMIPS -- Manual de Utilizador}
 
19
 
 
20
\author{Bruno Nova}
 
21
\title{\Title}
 
22
\hypersetup{pdfauthor={Bruno Nova},pdftitle={\Title}}
 
23
\definecolor{cloudwhite}{cmyk}{0,0,0,0.025}
 
24
\graphicspath{{figures/}}
 
25
 
 
26
\lstset{
 
27
        extendedchars=\true,
 
28
        inputencoding=utf8x,
 
29
        literate={ç}{{\c{c}}}1,
 
30
        basicstyle=\footnotesize\ttfamily,
 
31
        keywordstyle=\bfseries,
 
32
        numbers=left,
 
33
        numberstyle=\scriptsize\texttt,
 
34
        stepnumber=1,
 
35
        numbersep=8pt,
 
36
        frame=tblr,
 
37
        float=htb,
 
38
        aboveskip=8mm,
 
39
        belowskip=4mm,
 
40
        backgroundcolor=\color{cloudwhite},
 
41
        showspaces=false,
 
42
        showstringspaces=false,
 
43
        showtabs=false,
 
44
        tabsize=2,      
 
45
        captionpos=b,
 
46
        breaklines=true,
 
47
        breakatwhitespace=false,
 
48
        escapeinside={\%*}{*)},
 
49
        morekeywords={*,var,template,new}
 
50
}
 
51
 
 
52
\definecolor{orange}{RGB}{255,128,0}
 
53
\definecolor{cyan2}{RGB}{0,170,230}
 
54
 
 
55
\newcommand{\menupath}[1]{\textbf{\emph{#1}}}
 
56
 
 
57
 
 
58
 
 
59
\begin{document}
 
60
 
 
61
\maketitle
 
62
\tableofcontents
 
63
\newpage
 
64
 
 
65
\section{Composição da Interface Gráfica}
 
66
 
 
67
A interface gráfica do simulador DrMIPS é composta pela barra de menus, pela
 
68
barra de ferramentas e pela área onde os conteúdos principais do simulador são
 
69
mostrados.
 
70
Os ícones na barra de ferramentas são atalhos para algumas acções usadas
 
71
frequentemente nos menus. Pode pairar o cursor do rato sobre cada ícone para
 
72
descobrir o que ele faz.
 
73
 
 
74
A interface é mostrada com um tema claro, por omissão. Mas pode mudar para o
 
75
tema escuro ao seleccionar \menupath{Ver > Tema escuro} no menu.
 
76
O DrMIPS suporta múltiplos idiomas, portanto estes nomes podem ser diferentes.
 
77
Pode escolher outro idioma no menu \menupath{Ver > Idioma}.
 
78
 
 
79
Os conteúdos principais do simulador são divididos em separadores, por omissão.
 
80
Cada separador pode ser posicionado no lado esquerdo da janela ou no lado 
 
81
direito.
 
82
Pode mover um separador para o outro lado se clicar com o botão direito do rato
 
83
no separador e seleccionar \menupath{Mudar de lado} no menu que aparece.
 
84
Se, em vez disso, preferir ver os conteúdos divididos em janelas, pode fazê-lo
 
85
seleccionando \menupath{Ver > Janelas internas} no menu.
 
86
As posições e tamanhos dos separadores/janelas são recordadas ao sair.
 
87
 
 
88
Os separadores ou janelas mostrados são:
 
89
\begin{itemize}
 
90
        \item \textbf{Código}: o editor de código, onde pode criar ou editar um
 
91
                programa em \emph{assembly} para ser executado pelo simulador.
 
92
        \item \textbf{Assemblado}: após o código ser assemblado com sucesso, 
 
93
                este mostra as instruções máquina resultantes.
 
94
        \item \textbf{Registos}: lista todos os registos e seus valores.
 
95
        \item \textbf{Memória de dados}: mostra todos os valores na memória de 
 
96
                dados.
 
97
        \item \textbf{Caminho de dados}: a representação gráfica do caminho de
 
98
                dados, e o seu estado, é mostrada aqui.
 
99
\end{itemize}
 
100
 
 
101
 
 
102
\section{Separadores/Janelas}
 
103
 
 
104
\subsection{Código}
 
105
 
 
106
Este é o editor de código, onde pode escrever um programa em \emph{assembly}.
 
107
O editor mostra os números das linhas e realça a sintaxe válida.
 
108
 
 
109
Pode desfazer/refazer alterações, cortar/copiar/colar texto e 
 
110
procurar/substituir palavras no código. Estas acções podem ser acedidas pelo
 
111
menu \menupath{Editar} ou com um clique com o botão direito do rato no editor.
 
112
O código pode ser gravado para ou lido de um ficheiro. Estas acções estão
 
113
disponíveis no menu \menupath{Ficheiro}.
 
114
 
 
115
Pode premir \emph{Ctrl+Espaço} para auto-completar a palavra que está a escrever.
 
116
Ao fazer isso será mostrada uma lista de instruções, pseudo-instruções,
 
117
directivas e etiquetas que podem completar essa palavra.
 
118
Também será mostrada uma janela que explica o que a palavra seleccionada na lista
 
119
faz e como é usada.
 
120
Ao premir \emph{Ctrl+Espaço} num espaço vazio serão listadas todas as instruções,
 
121
pseudo-instruções, directivas e etiquetas disponíveis.
 
122
Também pode ver esta informação no menu \menupath{CPU > Instruções suportadas}.
 
123
 
 
124
Após escrever um programa em \emph{assembly}, terá de o assemblar.
 
125
Isto é feito seleccionando \menupath{Executar > Assemblar} no menu ou pressionando
 
126
o respectivo botão na barra de ferramentas.
 
127
Se o programa tiver erros, uma mensagem irá indicar o primeiro erro e um ícone de
 
128
exclamação irá aparecer ao lado dos números das linhas que têm um erro.
 
129
Pode pairar o cursor do rato sobre estes ícones para descobrir qual é o erro.
 
130
Se o programa estiver correcto, nenhuma mensagem será mostrada e pode prosseguir
 
131
para o executar.
 
132
 
 
133
 
 
134
\subsection{Assemblado} \label{sec:assembled}
 
135
 
 
136
Após o programa ser assemblado com sucesso, as instruções em código máquina
 
137
resultantes serão mostradas aqui numa tabela.
 
138
 
 
139
Cada linha da tabela corresponde a uma instrução ``assemblada'', contendo o seu
 
140
endereço, código máquina e instrução original.
 
141
A instrução a ser executada no momento é realçada.
 
142
 
 
143
Se estiver a simular um processador pipeline, todas as instruções que estão no
 
144
pipeline são realçadas com diferentes cores, cada uma representando uma uma etapa
 
145
diferente.
 
146
As diferentes cores significam:
 
147
\begin{itemize}
 
148
        \item \textbf{\textcolor{cyan2}{Azul}}: Etapa \textbf{I}nstruction 
 
149
                \textbf{F}etch (\textbf{IF}).
 
150
        \item \textbf{\textcolor{green}{Verde}}: Etapa \textbf{I}nstruction 
 
151
                \textbf{D}ecode (\textbf{ID}).
 
152
        \item \textbf{\textcolor{magenta}{Magenta}}: Etapa \textbf{Ex}ecute 
 
153
                (\textbf{EX}).
 
154
        \item \textbf{\textcolor{orange}{Laranja}}: Etapa \textbf{Mem}ory access
 
155
                (\textbf{MEM}).
 
156
        \item \textbf{\textcolor{red}{Vermelho}}: Etapa \textbf{W}rite \textbf{B}ack 
 
157
                (\textbf{WB}).
 
158
\end{itemize}
 
159
 
 
160
Ao pairar o cursor do rato sobre uma instrução na tabela irá exibir uma dica.
 
161
Esta dica mostra o tipo da instrução e os valores dos seus campos. \footnote{Na
 
162
versão para Android, toque na instrução para ver a sua dica.}
 
163
 
 
164
Os valores são mostrados em formato decimal, por omissão.
 
165
Pode alterar esse formato para binário ou hexadecimal usando a caixa de 
 
166
combinação no fundo do separador/janela.
 
167
Esta caixa de combinação está disponível em todos os separadores/janelas, 
 
168
excepto no separador/janela de código.
 
169
 
 
170
Para controlar a simulação, pode usar o menu \menupath{Executar} ou a barra de
 
171
ferramentas. Prima \menupath{Passo} para executar uma instrução, 
 
172
\menupath{Passo atrás} para reverter uma instrução, \menupath{Executar} para
 
173
executar o programa inteiro e \menupath{Reiniciar} para reverter para a primeira
 
174
instrução.
 
175
 
 
176
 
 
177
\subsection{Registos e Memória de Dados}
 
178
 
 
179
Estes dois separadores/janelas são bastante semelhantes.
 
180
O separador/janela dos registos mostra os valores dos registos e do contador do
 
181
programa, enquanto que o separador/janela da memória de dados mostra os valores
 
182
na memória de dados.
 
183
 
 
184
Os valores que estão actualmente a ser acedidos são realçados em diferentes 
 
185
cores. As cores significam:
 
186
\begin{itemize}
 
187
        \item \textbf{\textcolor{green}{Verde}}: o registo/endereço está a ser lido
 
188
                no banco de registos/memória de dados.
 
189
        \item \textbf{\textcolor{red}{Vermelho}}: o registo/endereço está a ser
 
190
                escrito no bando de registos/memória de dados.
 
191
        \item \textbf{\textcolor{orange}{Laranja}}: o registo/endereço está a ser
 
192
                lido e escrito no mesmo ciclo no banco de registos/memória de dados.
 
193
\end{itemize}
 
194
 
 
195
Pode editar o valor de qualquer registo ou endereço de memória fazendo 
 
196
duplo-clique nele na respectiva tabela. Isto inclui o contador do programa.
 
197
Registos constantes (como o registo \verb+$zero+) não podem ser editados.
 
198
\footnote{Na versão para Android, toque durante alguns segundos no
 
199
registo/endereço para o editar.}
 
200
 
 
201
Por omissão, os valores dos registos e da memória de dados são reiniciados
 
202
sempre que o código é assemblado.
 
203
Se não quiser que isto aconteça, desmarque 
 
204
\menupath{Executar > Reiniciar dados antes de assemblar} no menu.
 
205
 
 
206
 
 
207
\subsection{Caminho de dados}
 
208
 
 
209
A representação gráfica do caminho de dados do processador é exibida aqui.
 
210
É aqui que pode ver como o CPU funciona internamente.
 
211
 
 
212
O DrMIPS pode simular vários caminhos de dados uniciclo e pipeline diferentes.
 
213
O nome do caminho de dados a ser usado actualmente é mostrado no fundo deste
 
214
separador/janela. Pode escolher outro caminho de dados seleccionando
 
215
\menupath{CPU > Carregar} no menu.
 
216
Note que caminhos de dados diferentes podem suportar instruções diferentes.
 
217
 
 
218
Os caminhos de dados fornecidos por omissão são:
 
219
\begin{itemize}
 
220
        \item \textbf{Caminhos de dados uniciclo}
 
221
        \begin{itemize}
 
222
                \item \textbf{unicycle.cpu}: O caminho de dados uniciclo por omissão.
 
223
                \item \textbf{unicycle-no-jump.cpu}: Variante mais simples do caminho
 
224
                        de dados uniciclo que não suporta a instrução \verb+j+
 
225
                        (\emph{jump}).
 
226
                \item \textbf{unicycle-no-jump-branch.cpu}: Uma variante ainda mais
 
227
                        simples do caminho de dados uniciclo que não suporta \emph{jumps}
 
228
                        nem \emph{branches}.
 
229
                \item \textbf{unicycle-extended.cpu}: Uma variante os caminho de dados
 
230
                        uniciclo que suporta algumas instruções adicionais, como
 
231
                        multiplicações e divisões.
 
232
        \end{itemize}
 
233
        
 
234
        \item \textbf{Caminhos de dados pipeline}
 
235
        \begin{itemize}
 
236
                \item \textbf{pipeline.cpu}: O caminho de dados pipeline por omissão,
 
237
                        que implementa resolução de conflitos. Os caminhos de dados 
 
238
                        pipeline não suportam a instrução \verb+j+ (\emph{jump}).
 
239
                \item \textbf{pipeline-only-forwarding.cpu}: Variante do caminho de 
 
240
                        dados pipeline que, em termos de resolução de conflitos, só
 
241
                        implementa atalhos (dando resultados errados).
 
242
                \item \textbf{pipeline-no-hazard-detection.cpu}: Uma variante do
 
243
                        caminho de dados pipeline que não implementa nenhum tipo de
 
244
                        resolução de conflitos (dando resultados errados).
 
245
                \item \textbf{pipeline-extended.cpu}: Uma variante que suporta algumas
 
246
                        instruções adicionais, tal como o \emph{unicycle-extended.cpu}.
 
247
        \end{itemize}
 
248
\end{itemize}
 
249
 
 
250
No topo do separador/janela, a instrução ou instruções actualmente a serem
 
251
executadas são mostradas. Elas são realçadas com as mesmas cores explicadas
 
252
na sub-secção~\ref{sec:assembled}.
 
253
 
 
254
O caminho de dados é mostrado por baixo das instruções.
 
255
Os componentes são representados por rectângulos ou quadrados e os fios por
 
256
linhas que terminam em setas.
 
257
Os fios relevantes que estão no caminho de controlo são mostrados em azul.
 
258
Fios que são considerados irrelevantes no ciclo de relógio actual são 
 
259
mostrados em cinzento.
 
260
Um fio é considerado irrelevante se for um sinal de controlo colocado a
 
261
\verb+0+, se o seu valor for ignorado por um componente, se for a saída da
 
262
\emph{unidade de detecção de conflitos} e não estiver a ocorrer um
 
263
protelamento, etc.
 
264
 
 
265
Os valores em algumas entradas e saídas importantes de alguns componentes são
 
266
mostrados no caminho de dados como umas pequenas ``dicas'' com 
 
267
fundo amarelo.
 
268
Pode pairar o cursor do rato sobre estas ``dicas'' para descobrir qual é o
 
269
identificador da entrada/saída.
 
270
 
 
271
Ao pairar o cursor do rato sobre um componente, uma dica com alguns detalhes
 
272
sobre o mesmo será mostrada \footnote{Na versão para Android, toque no
 
273
componente para ver a sua dica.}.
 
274
A dica apresenta o nome do componente, uma descrição do que faz e os valores
 
275
em todas as entradas e saídas.
 
276
 
 
277
Pode ocultar o caminho de controlo desmarcando
 
278
\menupath{Caminho de dados > Caminho de controlo}.
 
279
Pode ocultar as setas no fim dos fios desmarcando
 
280
\menupath{Caminho de dados > Setas nos fios}.
 
281
E pode ocultar as ``dicas'' das entradas/saídas desmarcando
 
282
\menupath{Caminho de dados > Dados sobrepostos}.
 
283
 
 
284
\bigskip
 
285
 
 
286
O caminho de dados também pode ser mostrado num ``modo de desempenho''.
 
287
Pode mudar para este modo seleccionando 
 
288
\menupath{Caminho de dados > Modo de desempenho} no menu.
 
289
Neste modo, o desempenho do processador é simulado, e o caminho crítico
 
290
é mostrado a vermelho.
 
291
 
 
292
Pode ver ou o caminho crítico da instrução que está actualmente a ser
 
293
executada ou o caminho crítico global do CPU (independente da instrução).
 
294
A caixa de combinação no fundo do separador/janela é usada para escolher
 
295
entre estas duas opções.
 
296
 
 
297
Cada componente tem uma latência, que pode ser consultada na sua dica.
 
298
A dica também mostra as latências acumuladas nas entradas (o tempo que
 
299
demora para a entrada receber o valor correcto após a transição do relógio)
 
300
e nas saídas (o tempo que o componente demora a gerar o valor correcto para
 
301
a saída).
 
302
 
 
303
As latências dos componentes podem ser alteradas fazendo um duplo-clique
 
304
neles no modo de desempenho \footnote{Na versão para Android, toque durante
 
305
alguns segundos no componente no modo de desempenho para editar a sua
 
306
latência.}.
 
307
Para além disso, pode seleccionar 
 
308
\menupath{Caminho de dados > Restaurar latências} no menu para restaurar as
 
309
latências de todos os componentes para os seus valores originais, e
 
310
\menupath{Caminho de dados > Remover latências} para colocar todas as
 
311
latências a \verb+0+.
 
312
 
 
313
Também pode ver algumas estatísticas sobre a simulação, como a frequência de
 
314
relógio e o CPI (\emph{Ciclos Por Instrução}), seleccionando
 
315
\menupath{Caminho de dados > Estatísticas} no menu.
 
316
 
 
317
 
 
318
\end{document}