Pourquoi est-ce que la fréquence d'horloge produite est de 6,144 MHz, mais en interne (processeur 8085) n'utilise que 3,072 MHz. Ce qui conduit également à la valeur spécifique de 6,144 dans une horloge.
J'ai trouvé une réponse sur yahoo .... http://answers.yahoo.com/question/index?qid=20080810090119AAurr2i
mais je dois admettre que je ne l'ai pas encore bien compris. Est-ce que l'un d'entre vous pourrait jeter quelques mots à ce sujet, s'il vous plaît?
8085
microprocessor
clock
loxxy
la source
la source
Réponses:
Une raison de diviser une horloge par deux est d'obtenir une onde carrée de rapport cyclique égal à 50%. Il se peut que le 8085 utilise en interne les deux fronts d'horloge et ne fonctionnerait pas si une moitié du cycle se révélait beaucoup plus courte que l'autre.
À l'époque où le 8085 était nouveau, ces beaux oscillateurs en conserve n'étaient pas courants, et les gens bricolaient souvent des circuits d'horloge à partir de cristaux discrets, de condensateurs et de portes logiques. La division par deux vous garantit des bords ascendants et descendants également espacés.
Quant à 6,144 MHz, vous constaterez qu'il peut être divisé par un entier pour obtenir des valeurs de débit en bauds communes, au moins jusqu'à 38400.
suivre ...
En regardant une fiche technique Intel pour le 8085, il y a trois déclarations intéressantes
Ainsi, les spéculations sur l'utilisation des bords étranges de l'horloge pour déplacer des éléments à l'intérieur, il devient évident que lorsqu'ils ont conçu le 8085, Intel remplaçait le besoin d'un contrôleur d'horloge spécial en intégrant cette fonctionnalité dans la puce. Diviser la base de temps X1-X2 en deux avant de la produire en tant que CLK garantit que le système obtient un bon rapport cyclique uniforme, si rien d'autre.
la source
Au moment où cette puce a été conçue, les gens utilisaient le moins de transistors possible dans le processeur, pour les rendre suffisamment petits pour s'adapter aux puces disponibles.
Je soupçonne que pratiquement tous les «registres» (à la fois les registres de jeux d'instructions visibles par le programmeur et les verrous de microarchitecture internes) dans un processeur de cette époque stockaient des données dans un verrou D transparent et sécurisé ou quelque chose de similaire. De nos jours, il y a beaucoup de transistors sur une puce, il est donc plus simple d'utiliser des bascules D maître-esclave complètes, même si elles utilisent deux fois plus de transistors.
De nombreuses instructions prennent des données d'un registre A, les combinent avec d'autres données avec l'ALU et stockent le résultat dans le registre A. C'est assez facile à faire si le registre A est implémenté avec une bascule D maître-esclave complète.
Mais si le registre A est un verrou D fermé et transparent, vous avez besoin d'horloges qui ne se chevauchent pas. Vous utilisez une impulsion sur une horloge pour stocker quelque résultat intermédiaire quelque part (alors que le registre A conserve sa constante de sortie), puis une impulsion sur une autre horloge pour charger le registre A avec la nouvelle valeur (tandis que le registre intermédiaire conserve sa constante de sortie).
Cela nécessite une horloge à 2 phases. Le moyen le plus simple de créer une horloge biphasée sans chevauchement (à l'époque où les transistors étaient rares) était un petit circuit externe qui prend une horloge d'entrée et la divise par deux.
Au fil du temps, les gens ont compris comment emballer de plus en plus de transistors sur un circuit intégré. Les concepteurs de CPU ont donc intégré de plus en plus de choses autour du CPU dans un système informatique complet sur la puce du CPU.
En lisant entre les lignes de l' article sur le signal d'horloge de Wikipedia , j'ai l'impression que les personnes qui ont conçu le 8085 et le 6502 et d'autres puces de cette époque avaient juste un peu plus de place que la génération précédente de processeurs intégrés, et ils ont décidé du meilleur l'utilisation de cette pièce était de mettre ce petit circuit externe sur puce. Mais ils ont gardé tous les registres dans le même verrou D fermé qu'avant.
C'est pourquoi la fréquence d'horloge est divisée par deux. Vous pouvez penser à la première impulsion d'horloge externe générant une impulsion sur le signal d'horloge interne phase_one pour mettre à jour ce registre de résultat intermédiaire, et la seconde impulsion de l'horloge externe générant une impulsion sur le signal d'horloge interne phase_two pour mettre à jour le registre visible par le programmeur.
la source
Il existe de nombreuses raisons de diviser le cycle d'instructions en plusieurs cycles d'horloge. Un bon exemple est l'accès au bus de mémoire principal.
La plupart des processeurs modernes sont des architectures Von-Neumann; c'est-à-dire que leur code et leurs données existent tous les deux sur la même puce de mémoire. Eh bien, si vous voulez lire une instruction, et que cette instruction va charger une variable de la mémoire ... c'est deux accès à la mémoire. Mais la plupart de la mémoire est uniquement à port unique (c'est-à-dire qu'elle ne peut effectuer qu'une seule lecture ou écriture par cycle). Alors, comment lisez-vous les instructions et lisez votre variable?
La solution consiste à utiliser un cycle d'instruction en deux étapes. La première étape récupère l'instruction de la mémoire, et la deuxième étape peut ensuite lire (ou écrire!) La variable de la mémoire principale.
Certaines puces plus anciennes sont allées encore plus loin. À l'époque, si votre puce avait 16 bits de mémoire adressable, mais que le bus d'adresse externe n'est que de 8 bits, alors vous seriez familier avec l'activation du verrouillage d'adresse. Un cycle d'horloge envoie les 8 bits supérieurs de l'adresse 16 bits et le cycle d'horloge suivant envoie les 8 bits inférieurs. Un troisième cycle pourrait alors lire / écrire la variable de / vers la mémoire.
Il existe d'autres meilleures raisons d'avoir un cycle d'instructions de plusieurs cycles d'horloge. L'une des meilleures raisons est le pipelining. C'est une astuce que les processeurs modernes utilisent pour exploiter plus pleinement toutes les unités d'exécution disponibles dans une puce; par exemple, pendant qu'une instruction est en cours d'exécution, la suivante est récupérée en même temps.
la source
En interne, le cœur du 8085A nécessite une horloge à deux phases. La logique interne qui dérive les deux phases d'horloge divise également l'horloge d'entrée par deux. Comme indiqué précédemment, la raison de l'utilisation d'une horloge d'entrée à 6,144 MHz est à des fins de débit en bauds, la puce fonctionnera très bien à 6 MHz. La puce est en fait évaluée à 3MHz nécessitant un cristal de 6MHz, mais fonctionne heureusement avec un 6.144MHz donnant une génération de débit en bauds plus facile (Un Uart pourrait être cadencé avec le 6.144MHz d'un oscillateur pilotant le 8085 ou à 3.072MHz de la sortie CLK du 8085's fournissant de nombreux taux de Baud utilisables). J'utilise toujours ces puces archaïques pour effectuer des fonctions spéciales dans certains de mes robots. J'horloge les Uarts avec leur propre oscillateur et j'horloge les 8085A avec un oscillateur à 6,4 MHz, qui fait tourner la puce à 3,2 MHz. Le 3. 2MHz se divise bien pour fournir l'horloge 40KHz pour mes transducteurs à ultrasons. Il est plus logique d'utiliser des appareils IC plus modernes dans mes robots, mais j'ai une tonne d'anciens 8085, Z80, 63C09 et 63C09E, 68B09 et 68B09E, etc. avec lesquels j'aime vraiment jouer.
la source
L'horloge n'est qu'un moment où vous voulez qu'un événement se produise. Maintenant, nous ne préférons pas le déclenchement de niveau dans les circuits numériques parce que lorsque plus de temps est donné, une interaction peut se produire entre différents circuits dans le microprocesseur conduisant à des courts-circuits. Nous allons donc POUR LE DÉCLENCHEMENT DE BORD. Maintenant, le microprocesseur ne sait pas quand le déclenchement sur front s'est produit. Il ne comprend que 1 ou 0. Une bascule est donc requise pour produire 1 et 0 chaque fois qu'un front d'horloge est détecté. Ainsi, il devient nécessaire d'utiliser une bascule. Par conséquent, la fréquence d'horloge est divisée par deux.
la source