algorithms architectures and chips 2636796