¿Cuál es la importancia de los FSM?

Cualquier cosa con eventos de hardware que debe ocurrir en una secuencia es una máquina de estado finito (FSM).

El ejemplo más destacado de una máquina de estados finitos está en el centro de una unidad de ejecución de CPU. La CPU procesa las instrucciones una por una, y cada instrucción pasa por múltiples fases. La máquina de estados finitos realiza un seguimiento de qué fase está sucediendo en este momento y qué fase debe suceder a continuación.
Diagrama de VOER

Pero va más allá de lo que significa en hardware. Los FSM también se utilizan en software. Un FSM es una abstracción matemática de un proceso. El FSM absoluto más simple basado en software es cualquier tipo de bucle. Pasa por un conjunto de fases: compruebe la condición, si se cumple, siga las instrucciones, si no se cumple, salga de la máquina, después de pasar por la condición de comprobación de instrucciones, repita hasta salir.

Una máquina de estados finitos es básicamente cómo codifica el comportamiento en el hardware.

Hay operadores aritmáticos (sumar, restar, multiplicar, etc.) y operadores lógicos (y, o, xor, etc.), pero si necesita unirlos para formar una acción secuencial con toma de decisiones y ramas, debe diseñar una máquina de estados.

El software tiene un comportamiento inherente al lenguaje, pero eso se debe a que todos los procesadores tienen fsm que manejan este comportamiento como instrucciones ejecutables. Las instrucciones son datos para el FSM y, en función de los datos / instrucciones, el hardware toma decisiones sobre qué hacer a continuación.

Si está diseñando hardware con un procesador, a menudo puede descargar fsms de hardware y reemplazar el comportamiento con software. Pero si está diseñando algo demasiado rápido para que lo maneje un procesador o si está diseñando un procesador en sí mismo, entonces debe conocer el diseño de FSM.

More Interesting

¿Habrá otra arquitectura convencional después de x86 y ARM?

¿Cuáles son las ventajas y desventajas de los diversos "modos de operación" en la criptografía de cifrado de bloque?

¿Qué intereses debe tener un informático?

¿Cuál es el objetivo del análisis de algoritmos?

¿Qué desafíos éticos enfrentan las empresas financieras hoy en día al usar tecnologías de inteligencia artificial?

¿Cuál es la diferencia entre una combinación 'perfecta' y una combinación 'estable'?

¿Qué tan difícil es investigar un poco en informática y publicar en conferencias / revistas si ya no está asociado con ninguna institución académica o de investigación?

¿Alguno de los IIT ofrece cursos de ingeniería inversa y desarrollo de exploits?

¿Cuáles son algunos proyectos simples de PNL basados ​​en un documento de conferencia (no demasiado complejo) que un estudiante de informática puede probar? Necesito hacer un proyecto de compilador basado en PNL como parte de mi curso.

Cómo obtener sonido de una computadora al televisor

Aprendizaje automático: ¿cómo puedo comparar entre clasificadores?

¿Hay algún autómata celular bien conocido e interesante?

¿Qué es un buen proyecto de aprendizaje automático que involucra interfaces cerebro-computadora?

¿Cómo aprender sobre aprendizaje automático versus ciencia de datos versus inteligencia artificial versus redes neuronales versus procesamiento de lenguaje natural? ¿Cómo difieren y qué conjunto de habilidades necesito para dominarlos?

¿Qué implica una prueba de sistema no funcional?