Se servir d’une Pcmcia/CF comme extension de RAM

15 sujets de 1 à 15 (sur un total de 16)

  • 1
  • 2
  • Harlock

      #377041

      Meilleurs voeux à toutes et tous ,que la force soit avec vous toute cette année 2024 !
      Voilà je vais essayer d’être clair :
      -On connais tous ces fameux adaptateurs CF en slot pcmcia , grâce à AmigaImpact j’ai appris à gerer ce matos ,youhou !!!
      -Je possède également une extension de RAM 4mo “AMEM4” en pcmcia “pure”
      -Ayant une CF disponible, je me demandait (avant de me lancer dans un perilleux bourbier sur WB) peut -on preparer une Pcmcia/cf en extension avec ? avec prepCard par exemple…

      Bonne semaine à toutes et tous

      A1200 / 10mb +CF
      AMILATOR X64
      WINUAE 4.10.1
      https://www.youtube.com/channel/UCTUHgb4RLKkarASiidTvbXA

      stephbb75

        #377049

        Salut,

        Oui c’est possible de faire d’un CF une extension mémoire (alors de mémoire je ne sais plus comment on fait ;-O ), mais tu auras 4Mo max, c’est une mémoire 16bit (donc lente !) et le port PCMCIA est lent …

        Cela n’iras pas plus vite que ton extension 4Mo PCMCIA (voire peut être même moins vite en fonction de ta CF !)

        Donc si tu veut t’amuser c’est a faire, sinon cela n’a aucun intérêt 😉

        C’est pour un 1200 ou un 600 ?

        https://youtube.com/@stephbb75

        Harlock

          #377051

          Merci pour ton retour , j’ai un 600 et un 1200 , et je lui attribue l’AMEM4 en fonction de mes “envies” .
          En effet ça relève + de l’amusement que dela réélle nécéssité . et oui je me doute que je serai limité à ce genre de capacité !
          Question vitesse, je ne trouve pas l’amem4 lente , elle est détectée comme memoire fast… du coup après t’avoir lu je me doute que la CF ira moins vite…

          Y’a plus qu’a essayer , je vous ferai un retour , merci bonne journée

          A1200 / 10mb +CF
          AMILATOR X64
          WINUAE 4.10.1
          https://www.youtube.com/channel/UCTUHgb4RLKkarASiidTvbXA

          piark

            #377052

            je le fait avec une carte pcmcia mémoire à piles (pas un adaptateur compact flash, ça n’a rien à voir).

            ce sont des cartes qui coûtent une blinde avec peu de mémoire, la mienne fait 2mo.

            mais c’est plus intéressant d’avoir une extension fastram, et utiliser la pcmcia comme disque bootable de secour avec un workbench et un pilote pcmcia compactflash, ça permet d’installer un workbench 3.5/3.9/++ et sans démonter le disque dur interne, en jouant des assign et en faisant du swapp de pcmcia.

            je ne sais pas si on peut faire ça avec des devices spéciaux qui pourraient faire utiliser une Pcmcia/CF.

            Exemple: https://fr.aliexpress.com/item/4001279309958.html?algo_exp_id=0cbb2fde-1759-4de9-878e-159594c82d84-0

            Au final, je préfère garder le pcmcia pour les échanges de fichiers ou le boot de secour, que d’avoir de la ram dessus, en plus c’est du 16bits, je me demande bien comment sont les performances…..

            stephbb75

              #377054

              Salut,

              Sur un 600 effectivement 4Mo sur le PCMCIA cela va.
              Sur une 1200 cela vas beaucoup moins vite que de la vrais mémoire (mémoire 32bits, alors que le PCMCIA c’est 16bits, donc 2 fois plus lent déjà)

              Ensuite la mémoire seras bien moins rapide de tout façon que de la mémoire sur les extensions prévue pour, c’est de la fast mais slow 🙂

              du coup après t’avoir lu je me doute que la CF ira moins vite…

              Tout dépend de ta CF 😉

              https://youtube.com/@stephbb75

              piark

                #377057

                voila j’ai retrouvé l’engin,

                ce dont je parlais c’est une MELCARD mitsubishi de 2MB ( https://www.alldatasheet.com/datasheet-pdf/pdf/1696/MITSUBISHI/MF32M1-LCDATXX.html )

                ils disent même que c’est un databus de 8/16bits, je me suis jamais trop amusé à vérifier les perfs avec ça de monté sur la machine.

                et je ne sais même pas comment l’AmigaOS affecte la mémoire dessus, qu’est ce qu’il utilise en priorité, j’imagine que c’est pas pris comme une extension de chip, mais comme “autre mémoire”, bref si quelqu’un fait l’essai ça serait intéressant de comparer les perfs.

                flaco

                  #377068

                  Bonjour. Ouille je me rend compte que j’ai écrit un roman, désolé.

                  Le standard PCMCIA prévoit qu’une carte puisse être configurée pour un bus 16 bit ou bien 8 bits. Sur l’Amiga ceci est forcé matériellement en 16 bits, ce qui m’a permis de simplifier la conception de ma carte PCMCIA-SRAM https://github.com/f1ac0/PCMCIA-SRAM inspirée de la “sakura” qui elle supporte les deux.

                  La norme PCMCIA standardise différents types d’interfaces, notamment ce qui nous intéresse ici :

                  • les interfaces de type “mémoire” dans lesquelles chaque mot est adressé en direct par le bus d’adresse, comme une ram normale. C’est ce qui limite leur taille à 4Mo sur l’amiga. La configuration de la carte permet de les déclarer à l’hôte comme support de masse et les melcard ont une batterie pour conserver les données lorsque la machine est éteinte ou la carte retirée.
                  • Les interfaces de type ATA qui sont adressées différemment et n’ont donc pas cette restriction de taille. Une CF sur un adaptateur est dans ce cas.

                  Les deux types d’interface sont bien différentes, c’est pour cette raison que j’ai un gros doute sur la possibilité d’utiliser des interfaces de type ATA comme des interfaces de type mémoire, et donc de la RAM dans la machine ! Un autre fait purement pratique à prendre en compte est que la mémoire flash a un nombre d’écriture limité qui entrainerait une usure très rapide pour un usage comme de la RAM. De plus une telle mémoire s’efface et donc se met à jour par blocs, ce qui imposerait à l’électronique où à l’hôte de bufferiser/réécrire un bloc complet pour modifier un bit, et donc des performances exécrables.

                  Si vous voulez en savoir plus je vous conseille de lire “pc card 4 metaformat specification” et “pc card 7 ata specification” facilement trouvables en pdf.

                  En terme de performances des interfaces de type mémoire : les puces actuelles sont suffisamment rapides pour ne nécessiter aucun cycle d’attente lors de l’accès par un 680×0 à 14MHz et leur vitesse est donc identique à de la fast RAM sur le bus CPU. En 16 bits sur un A600 c’est donc un moyen pratique de l’étendre si l’on n’a pas confiance dans les sockets limés et inversés sur le PLCC et si l’on ne veut pas utiliser le port PCMCIA pour autre chose.

                  En 16 bits sur un A1200 stock mes tests montrent que cela permet aussi un gain de performances appréciable par rapport à la Chip RAM, tellement le CPU sans fast ram est ralenti par le chipset qui est prioritaire pour accéder à la Chip. J’ai parfois lu que la RAM PCMCIA ralentissait un 1200 : ce n’est pas ce que j’ai constaté pour ma part avec une RAM se déclarant au système en 100ns (cf §3.2.2.1.1.4 du Metaformat Specification) cependant il n’est pas impossible que ce soit le cas si la RAM est plus lente.

                  Toujours sur le 1200, si l’on dispose par ailleurs de Fast RAM 32 bits alors oui cette dernière est plus rapide lors des accès 32 bits, et le système bien foutu de l’Amiga fait qu’elle est utilisée en priorité par rapport à la RAM PCMCIA qui peut alors servir d’appoint pour exécuter des tâches gourmandes. Enfin j’ai aussi constaté avec une extension Terriblefire (je ne me souviens plus si c’était la 1230 ou la 1260, peut être les deux ?) que certains accès à la RAM sur le port PCMCIA généraient des erreurs sous AmigaTestKit : je n’avais pas creusé les tests car l’utilité dans ce cas est égale à zéro.

                  J’ai d’ailleurs une question subsidiaire pour un sachant un peu pointu : est-ce qu’un 68020 a besoin de code optimisé pour lui pour faire des accès 32 bits sur le bus, et donc se limite à des accès 16 bits lorsqu’il exécute du code 68000 ? Il est probable que non dans la mesure où les instructions sont complexes et où il dispode d’un contrôleur de cache, mais je suis quand même curieux…

                  slack

                    #377071

                    Que veux-tu dire par :

                    >est-ce qu’un 68020 a besoin de code optimisé pour lui pour faire des accès 32 bits sur le bus, et donc se limite à des accès 16 bits lorsqu’il exécute du code 68000 ?

                    Je ne suis pas sur d’avoir compris.

                    Le 68000 peut acceder en une fois à 16 bits en mémoire. A partir du 68020, les processeurs Motorola 680×0 accèdent en une fois à 32 bits.

                    Contrairement aux processeurs Intel, les processeurs Motorola n’ont pas de code 16 bits et de code 32 bits. Un 68000 exige que les mots de 16 et de 32 bits soient à des adresses paires. Un 68020 accède à un mot de 32 bits en un seul accès mémoire si ce mot est à une adresse divisible par 4 et en 2 accès sinon.

                    Malheureusement, les concepteurs du 68000 n’ont pas imposé que les mots de 32 bits soient à des adresses divisibles par 4. Les concepteurs d’amigaOS (du software) ne l’ont pas fait. Cela ralenti le système sur des processeurs à partir du 68020.

                    __sam__

                      #377072

                      Un 68020 accède à un mot de 32 bits en un seul accès mémoire si ce mot est à une adresse divisible par 4 et en 2 accès sinon.

                      Uniquement si le bus est 32 bit. Mais même sur un bus 32 bits, le protocole implique 2 cycles pour lire les 32bits sur 020. Du coup pour remplir une ligne de cache instruction (4 mots 32 bits) il faut 8 cycles sur 020.

                      Sur 030 le protocole d’accès mémoire a été optimisé avec le mode “burst” qui permet lors du chargement d’une ligne de cache (4 mots de 32 bits) de savoir lors de la récupération du 1er mot (sur deux cycles) si la mémoire 32bit peut travailler en mode burst et fournir les 3 mots suivants en un seul cycle par mot, ceci permettant de remplir la ligne de cache en 2+3=5 cycles au lieu des 8 sur 68020. (source)

                      Malheureusement, les concepteurs du 68000 n’ont pas imposé que les mots de 32 bits soient à des adresses divisibles par 4. Les concepteurs d’amigaOS (du software) ne l’ont pas fait. Cela ralenti le système sur des processeurs à partir du 68020.

                      A noter que AllocMem() retourne toujours une adresse multiple de 8, et que la pile est toujours alignée sur 4 octets il me semble. Donc l’OS ne favorise pas spécialement les accès non alignés.

                      Samuel.

                      Amiga A500 + GVP530 (8Mo/fpu/mmu/scsi) - en panne 🙁
                      A500 (+ 1Mo PPS), A1200 (Blizzard-IV/fpu/64Mo)
                      A500 Vampire V2+ ^8^ 🙂
                      (mais aussi TO8, TO8D, TO9. Groupe PULS.)

                      slack

                        #377073

                        @sam,
                        Je parle des mots longs 32 bits des structures de données du système d’exploitation.

                        La structure node est constituée de 3 pointeurs 32 bits et 2 octets. La voici en language C :

                        struct Node {
                            struct  Node *ln_Succ;	/* Pointer to next (successor) */
                            struct  Node *ln_Pred;	/* Pointer to previous (predecessor) */
                            UBYTE   ln_Type;
                            BYTE    ln_Pri;		/* Priority, for sorting */
                            char    *ln_Name;		/* ID string, null terminated */
                        };	/* Note: word aligned */

                        Si les 2 premiers pointeurs sont alignés sur une adresse divisible par 4, le 3ème ne l’est pas. Et cela n’est qu’un exemple.

                        __sam__

                          #377075

                          En effet.

                          Ils sont choisis l’alignement “word” (16bit) ce qui n’était pas délirant au temps de la conception de l’OS. Or à cause de la rétrocompatibilité, il leur a été impossible de réorganiser ou ajouter du padding à cette structure omniprésente dans tout ce qui touche exec.library (donc les messages, les bibliothèques, les semaphores, etc).

                          Seule la partie DOS basée sur le BCPL où tout est mot de 32 bits sur amiga doit s’en sortir par rapport aux alignements. Mais il y a un cout à manipuler les BPTR (un décalage de 2 bits pour aligner sur les vraies adresses processeur).

                          Samuel.

                          Amiga A500 + GVP530 (8Mo/fpu/mmu/scsi) - en panne 🙁
                          A500 (+ 1Mo PPS), A1200 (Blizzard-IV/fpu/64Mo)
                          A500 Vampire V2+ ^8^ 🙂
                          (mais aussi TO8, TO8D, TO9. Groupe PULS.)

                          piark

                            #377076

                            je me demande quand même quelle est la priorisation par l’AmigaOS quand on à
                            une pcmcia ramcard + fast .

                            Car il me semble que sur a500 on avait de la chip+slow en interne, et on pouvait avoir de la fast via le slot latéral (bus zoro je crois).

                            Quand on demande de la mémoire à l’AmigaOS, on peut préciser, chipram, fastram, quand on précise fastram je me demande alors quelle mémoire est utilisé en premier, la slowfast ou la fast….

                            slack

                              #377078

                              @piark,

                              D’après la page http://obligement.free.fr/articles/chipsetamiga.php

                              La mémoire Chip à une priorité de -10, la mémoire Slow de 0 et la mémoire Fast de +10. Et si l’on a de la mémoire 32 bits, elle aura une priorité de +20.

                              Donc lorsqu’un programme demande de la Fast, amigaOS essaye d’attribuer de la FASTRAM avant de d’essayer d’attribuer de la SLOWRAM.

                              flaco

                                #377083

                                Que veux-tu dire par :

                                >est-ce qu’un 68020 a besoin de code optimisé pour lui pour faire des accès 32 bits sur le bus, et donc se limite à des accès 16 bits lorsqu’il exécute du code 68000 ?

                                Je ne suis pas sur d’avoir compris.

                                Le 68000 peut acceder en une fois à 16 bits en mémoire. A partir du 68020, les processeurs Motorola 680×0 accèdent en une fois à 32 bits.

                                En fait ma question était sans doute con car le 68000 dispose déjà de registres et d’instructions 32 bits, et donc il serait logique qu’une même instruction sur un mot de 32 bits en mémoire, si elle nécessitait 2 accès sur le 68000, n’en demande plus qu’un avec le 68020 (hors questions d’alignement).

                                J’en profite comme on a des experts dans le fil : j’avais pondu une logique verilog pour gérer l’alignement en lecture et en écriture du (futur) Pistorm’X1K2, je serai reconnaissant si vous y trouviez des bugs : https://github.com/f1ac0/PistormX/blob/main/Beta/PistormX%201K2/CPLD/pistormx1k2%20(separate%20D%20buffers).v . Ca fait déjà plus de 6 mois et je n’ai toujours pas pris le temps d’assembler les cartes, que j’ai fait faire début décembre, et il me reste encore à modifier emu68 pour ne plus uploader le code FPGA au démarrage. Mais j’ai bon espoir que ça marche comme les autres Pistorm’X 🙂

                                flaco

                                  #377084

                                  La mémoire Chip à une priorité de -10, la mémoire Slow de 0 et la mémoire Fast de +10. Et si l’on a de la mémoire 32 bits, elle aura une priorité de +20.

                                  La RAM sur port PCMCIA a une priorité de -5 (je viens de retrouver une photo d’écran que j’avais faite en 2020). Elle a donc une priorité moins grande que la slow même si elle est plus rapide, et dans Sysinfo elle est nommée “FAST RAM PUBLIC” avec node name “card.resource”.

                                15 sujets de 1 à 15 (sur un total de 16)

                                • 1
                                • 2
                                • Vous devez être connecté pour répondre à ce sujet.

                                Forums AmigaOS, MorphOS et AROS Général Se servir d’une Pcmcia/CF comme extension de RAM

                                Amiga Impact